使用dplyr将一个数据框的NAME列重命名为R中的另一个数据框的列NAME [复制]

问题描述 投票:-1回答:2

这个问题在这里已有答案:

我有两个数据帧,我存储为ca13和ca0112。我想使用合并函数按列名合并这两个数据帧。但是,列名称不同。

我试图使用for循环来实现这一点

cnam0112 <- c(names(ca0112))
cname13 <- c(names(ca13))

for( i in 1:size ) { ca13 <- rename(ca13, cname13[i] = cnam0112[i]) }

我得到了通常的错误Error: unexpected '=' in "for( i in 1:16) { ca13 <- rename(ca13, stuff13[i]="

我究竟做错了什么?单独命名每个列名称非常耗时!我只是使用dplyr库。列名是在一个数据帧中具有空格的字符串。作为另一个的分隔符。

[1] "State" "Year" "Cause"
[4] "Male.upto.14.years" "Male.15.29.years" "Male.30.44.years"
[7] "Male.45.59.years" "Male.60.years.and.above" "Total.Male"
[10] "Female.upto.14.years" "Female.15.29.years" "Female.30.44.years"
[13] "Female.45.59.years" "Female.60.years.and.above" "Total.Female"
[16] "Grand.Total"

[1] "State" "Year" "Cause"
[4] "Male upto 14 years" "Male 15-29 years" "Male 30-44 years"
[7] "Male 45-59 years" "Male 60 years and above" "Total Male"
[10] "Female upto 14 years" "Female 15-29 years" "Female 30-44 years"
[13] "Female 45-59 years" "Female 60 years and above" "Total Female"
[16] "Grand Total"

r dataframe dplyr rename plyr
2个回答
1
投票

我建议你在两个数据帧上使用janitor :: clean_names来获得更清晰,更容易阅读的名称。空格和点由下划线替换,每个列名称都设置为小写。然后名称应该匹配。


1
投票

我可以使用而不是使用循环

ca13 <- setNames(ca13, names(ca0112))

得到了评论的答案,谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.