本文介绍了用变量重命名列名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用新名称重命名特定列,该新名称是 dplyr
中的变量。
I want to rename a specific column with new name which comes as a variable in 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
,这很正常。所以我尝试了
I am getting newName
not nameY2017
which is normal. So I tried
iris %>%
rename_(eval(newName) = 'Petal.Length')
但是随后出现错误。
是否有正确的方法可以使用 dplyr
?
我知道我可以做类似的事情
Is there a proper way to do it with dplyr
?I know I can do something like
names(iris)[3] <- newName
但这不是 dplyr
解决方案。
推荐答案
此帖子中此
您的代码:
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
这篇关于用变量重命名列名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!