我想使用新名称重命名特定列,该列在dplyr
中作为变量出现。
newName = paste0('nameY', 2017)
我试过的是
iris %>%
rename(newName = Petal.Length) %>%
head(2)
哪个给出了
Sepal.Length Sepal.Width newName Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
我收到newName
而不是nameY2017
这是正常的。所以我试过
iris %>%
rename_(eval(newName) = 'Petal.Length')
但后来我收到了一个错误。
错误:“iris%>%rename_(eval(newName)=”
中的意外'='
使用dplyr
是否有正确的方法?
我知道我可以做点什么
names(iris)[3] <- newName
但那不是dplyr
解决方案。
答案 0 :(得分:2)
此帖子中的dplyr 'rename' standard evaluation function not working as expected?
的信用和更多信息您的代码:
newName = paste0('nameY', 2017)
iris %>%
rename(newName = Petal.Length) %>%
head(2)
解决方案:
iris %>%
rename_(.dots = setNames("Petal.Length",newName)) %>%
head(2)
输出:
Sepal.Length Sepal.Width nameY2017 Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa