我在尝试重命名多个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