[英]Using a loop to rename column names
我正在使用rename
中的dplyr
库中的重命名来重命名列名。 我尝试使用循环来实现这一点,它运行没有错误。 但是,不会更新列名。 循环是:
for (i in 1:length(columns)) {
newcol <- columns[i]
oldcol <- names(census)[i]
rename(census, newcol = oldcol)
}
'columns' 变量是一个包含新列名(与旧列名长度相同)的向量,而 'census' 是包含旧列名数据的小标题。 当只为每个循环迭代打印“newcol”和“oldcol”时,名称是正确的——它们似乎并没有使用“rename”行重命名。
Camille 的评论解释了为什么您的代码不起作用。
要修复代码,您可以删除循环并直接分配列名:
colnames(census) <- columns
使用rename
时,需要付出更多努力,因为rename
需要未计算的列名,您需要告诉它计算变量:
for (i in seq_along(columns)) {
newcol <- columns[i]
oldcol <- colnames(census)[i]
census <- rename(census, !! newcol := !! oldcol)
}
或者,再次删除不必要的循环:
census <- rename(census, !!! setNames(colnames(census), columns))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.