在R中提取唯一的字符串

时间:2012-09-27 16:01:13

标签: r

我有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

1 个答案:

答案 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), ]