从多个数据的第一列创建列表/向量

时间:2014-11-27 09:40:55

标签: r

总共我有21个csv文件,我想加载到R.所以我做了:

list_of_data = list.files(pattern="*.csv")
tbl_met = lapply(list_of_data, read.csv)

无法提供dput,因为数据太多......

我想要做的是从所有数据集的第一列中获取所有名称的列表。结合到一个向量/列表但有2个问题:

  • 首先,这些文件中的列由";"分隔。或者没有任何分隔标记......我是否必须查看这些文件,并以相同的方式将它们全部分开?

  • 第二个问题是可能存在重复的名称,我想将其从列表中删除。

你知道怎么做吗?我应该为您提供更多数据吗?如果是,请告诉我如何做到这一点。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。可能它不是最容易的但它有效。 首先,我必须将所有csv文件转换为相同的模式。使用R。

轻松完成任务

随后:

list_of_data = list.files(pattern="*.csv")
tbl_met = lapply(list_of_data, read.csv)
tbl <- rbindlist(tbl_met) ## binding all of the tables in the list by row

vec_names <- tbl$locus ## name of the column with names which I am interested in
vec <- unique(vec_names) ## removing the duplicates

很好!

答案 1 :(得分:0)

我有点怀疑在某些文件中没有分隔标记的事实。你会如何分隔列?是否所有列名至少相同?

但你能尝试一下,看看它能给出什么吗?

library(data.table)
list_of_data = list.files(pattern="*.csv")
tbl_met = lapply(list_of_data, fread)
DT=rbindlist(l=tbl_met,use.names = FALSE);
print(unique(DT[,1,with=FALSE]))

由于