R 向TIBLE添加新列时使用动态命名

R 向TIBLE添加新列时使用动态命名,r,tidyverse,tibble,R,Tidyverse,Tibble,在使用bind_cols或add_列时,我无法使用paste/paste0在循环中动态命名列 for (i in 1:10){ abc %>% add_column(paste0("new",i) = 1:6) } 上面的代码给出了一个错误。 如何在循环中动态命名新列。使用:= for (i in 1:10){ abc %>% add_column(!! paste0("new",i) := 1:6) } 到目前为止,提供的解决方案将有点脆弱,最终毫无用处,因为如果abc的行

在使用bind_cols或add_列时,我无法使用paste/paste0在循环中动态命名列

for (i in 1:10){
abc %>%
add_column(paste0("new",i) = 1:6)
} 
上面的代码给出了一个错误。 如何在循环中动态命名新列。

使用:=

for (i in 1:10){
abc %>%
add_column(!! paste0("new",i) := 1:6)
} 

到目前为止,提供的解决方案将有点脆弱,最终毫无用处,因为如果abc的行数不等于RHS上的值向量长度:=,它就会出错。相反,应该使用创建或选择与数据结构的第一维度匹配的值的代码。同样重要的是:结果的价值需要重新分配给abc。否则什么也不会发生

abc <- data.frame(a=1:3)
for (i in 1:10){
   abc <- abc %>%
            add_column(!! paste0("new",i) := 1:nrow(.))
} 
使用:=而不是=。请参见提供一份包含预期结果的报告。