我有40个CSV文件。每一个都有一列名字。在每个名称列中,可以重复相同的名称(总共,名称列平均有20,000行,大约一半是唯一的)。我想创建一个显示在多个文件中的名称列表(同时告诉它出现在哪些文件中)。如果同一个名字出现在多个文件中,我想知道每个文件的名称。
所以,小规模:
File1
Name
John
Peter
Abby
John
File2
Mike
Tim
John
Anothername
File3
Me
Mike
Adam
Eve
我想要的输出类似于:
data.frame
Names File
John 1
John 2
Mike 2
Mike 3
答案 0 :(得分:1)
如果您将所有csv放入列表中,这可能会采取以下方法:
#generate a fake data set easy to work with
LIST <- lapply(rpois(10, 10), function(i)data.frame(id=1:i, state=sample(state.name, i)))
#add the file number as a column
v <- lapply(1:length(LIST), function(i)data.frame(LIST[[i]], file=rep(i, nrow( LIST[[i]]))))
#make one big data frame
dat <- do.call(rbind, v)[, -1]
#reorder said data frame
dat[order(dat$state, dat$file), ]