如何用r中的名称列表重命名多个文件的特定列?

时间:2018-08-20 20:44:11

标签: r list

我有一个.txt文件文件夹。我已经通过以下命令将文件读入R中的列表中:

filenames <- list.files("/path/to/folder")
datalist = lapply(filenames, function(x)read.table(x, header=T))

现在我想将每个文件的第9列更改为文件名(文件名列表是名称的向量)。

您知道如何使用lapply()来做到这一点吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过设置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