在R中的rename()中的新列名中使用胶水

  • 本文关键字:新列名 中的 rename r
  • 更新时间 :
  • 英文 :


我有一个日期变量,可以在脚本的开头设置。在脚本的后面,这个日期变量被用作新列名的一部分。

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)

如果要将gluerename一起使用,可以执行以下操作:

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

另一种选择是使用不需要gluerename_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"