我在嘗試重命名多個data.frame
s的列。重命名多個數據框中的列,R
舉一個例子,假設我有一個data.frame
s dfA
,dfB
和dfC
的列表。我寫了一個函數changeNames
相應地設置名稱,然後使用lapply
如下:
dfs <- list(dfA, dfB, dfC)
ChangeNames <- function(x) {
names(x) <- c("A", "B", "C")
}
lapply(dfs, ChangeNames)
不過,這並不會達到預期效果。看起來我並沒有將新名稱分配給data.frame
,而只是創建新名稱。我在這裏做錯了什麼?
預先感謝您!
後行'名稱(X)< - '你的功能,加上'回報(X)'或'簡單x'。否則,你只是返回'names(x)'。 – Arun
謝謝你的回覆阿倫!如果我廣告返回(x),我將得到dfA,dfB和dfC的外印,並帶有新名稱。但是如果我以後查看名稱(dfA),名稱(dfB)和名稱(dfC),它們仍然具有舊的列名稱。我的數據框也非常大,所以我不想查看它們。只更改那裏的列名稱。 – user2706593
'lapply'不會修改輸入。這裏沒有「引用改變」。一切都在副本上完成。你必須重新分配結果。 do:'dfs < - lapply(dfs,ChangeNames)' – Arun