我有一个包含.txt文件的文件夹。我已经通过以下命令将文件读取到R中的列表中:
filenames <- list.files("/path/to/folder")
datalist = lapply(filenames, function(x)read.table(x, header=T))
现在,我想将每个文件的第9列更改为文件名(文件名列表是名称的向量)。
您知道如何使用lapply()来完成此操作吗?谢谢!
发布于 2018-08-21 04:57:46
您可以通过设置colnames
子集并插入来按位置更改单个列名,如下例所示。
lst <- list(data.frame('a' = c(1,2,3),
'b' = c(3,5,6)),
data.frame('a' = c(1,2,3),
'b' = c(3,5,6)),
data.frame('a' = c(1,2,3),
'b' = c(3,5,6)))
lapply(lst, function(item) {
colnames(item)[2] <- 'cat' # This would be 9 if you wanted the 9th column
return(item)
})
[[1]]
a cat
1 1 3
2 2 5
3 3 6
[[2]]
a cat
1 1 3
2 2 5
3 3 6
[[3]]
a cat
1 1 3
2 2 5
3 3 6
https://stackoverflow.com/questions/51938242
复制相似问题