我有一个日期变量,可以在脚本的开头设置。在脚本的后面,这个日期变量被用作新列名的一部分。
df <- df %>%
rename("Date" = glue("{date_variable}"),
glue("Change since {date_variable}") = change)
这就是设置日期变量的样子:
date_variable <- "2020-04-15"
现在,第一个重命名(胶水在旧列名中(非常有效。第二部分中的胶水在新列名中,但没有。它返回:
意外('='位于:"df<-df%>%rename(glue("Test{date_variable}"(=";
在新的变量名中使用粘合命令是不是根本不可能?
在不显式使用glue
的情况下,但使用海象运算符:=
,如@Ronak Shah的回答:
df %>% rename("Change since {date_variable}" := change)
如果要将glue
与rename
一起使用,可以执行以下操作:
library(dplyr)
library(glue)
df %>% rename("Date" = glue("{date_variable}"),
!!glue("Change since {date_variable}") := change)
# Date Change since 2020-04-15
#1 1 2
#2 2 3
#3 3 4
#4 4 5
另一种选择是使用不需要glue
的rename_with
。
df %>%
rename_with(~c('Date', paste('Change since', date_variable)),
c(date_variable, 'change'))
数据
df <- data.frame("2020-04-15" = 1:4, change = 2:5, check.names = FALSE)
date_variable <- "2020-04-15"