R 向TIBLE添加新列时使用动态命名
在使用bind_cols或add_列时,我无法使用paste/paste0在循环中动态命名列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的行
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(.))
}
使用:=而不是=。请参见提供一份包含预期结果的报告。