[英]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.