我每年有20个excel文件,其中包含城市级别的数据。我将它们导入列表中,因为我认为遍历它们会更容易。 我要做的第一项任务是更改每个文件第二列的名称。 如果是,对于单个文件,我可以这样做:
#data is a list of data tables/frames. Example:
data<-list(a = data.frame(1:2,3:4),b = data.frame(5:8,15:18) )
#renaming first column of a (works)
names(data[[1]])[2]<-"ABC"
我能够重命名该列。 为了进行批量编辑,我想编写一个在lapply中使用的函数。该函数应该是上述内容的简单版本:
rename <-function(df){
names(df)[2]<-"XYZ"}
重命名(data [[1]])对第二列没有任何作用。有什么想法吗?
答案 0 :(得分:0)
您需要在每次迭代时返回完整的修改对象:
data <- lapply( data, function(x) {names(x)[2]<-"ABC"; x})
data
#---------
[[1]]
X1.2 ABC
1 1 3
2 2 4
[[2]]
X5.8 ABC
1 5 15
2 6 16
3 7 17
4 8 18
我确定这是重复的,但我不知道正确的搜索词可能是什么,所以我只是在回答它....