【问题标题】:read.csv from list to get unique colnames从列表中读取.csv 以获取唯一的列名
【发布时间】:2018-03-29 18:25:07
【问题描述】:

我正在将我的文件读入file_list。使用 read.csv 读取数据,但是,我希望 datalist 中的数据将 colnames 作为文件名 file_list。原始文件没有标题。 如何更改 function(x) 以使第二列的 colname 与文件名相似。第一列不必是唯一的。

file_list = list.files(pattern="*.csv")     

datalist = lapply(file_list, function(x){read.csv(file=x,header=F,sep = "\t")})

【问题讨论】:

  • 寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。

标签: r lapply


【解决方案1】:

如何更改 function(x) 以使第二列的 colname 与文件名相似?

datalist = lapply(file_list, function(x){
    dat = read.csv(file=x, header=F, sep = "\t")
    names(dat)[2] = x
    return(dat)
})

这会将文件名作为第二列的名称。如果要编辑名称,请在x 上使用gsubsubstr(或类似名称)来修改字符串。

【讨论】:

  • 完美的解决方案
【解决方案2】:

您可以再添加一个步骤。

names(datalist) <- file_list

【讨论】:

  • 这将切换列表名称。我认为 OP 要求重命名列表中数据框的列。
  • 你是对的。如果您使用ldply 将列表拆分为数据框,这将使您能够获取文件名。您的解决方案正是他们想要的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-12
  • 2011-10-19
  • 1970-01-01
相关资源
最近更新 更多