0

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
4

1 に答える 1

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), ]
于 2012-09-27T16:20:03.750 に答える