2017-02-20 6 views
0

data.tableをグループ化するにはどうすればいいですか?メタデータでファイル名を指定し、各グループをlist -itemに保存しますか?リストとしてのdata.table集約の出力

入力:

DT <- data.table(files = 1:10, meta = c(rep(1, 6), rep(2,4))) 

は、私のようなものを考えた:

MyList <- DT[, files, by = meta] #something like that 

所望の出力:上記の例では、場合、そのメタに簡略化されて

[[1]] 
[1] 1 2 3 4 5 6 

[[2]] 
[1] 7 8 9 10 

実際にはm (by group by)、いくつかの行は前に選択されています。 は(好適data.table - 溶液を)行くための簡単な方法はありますか、私は

lapply(unique(DT$meta), function(x) DT[meta == x]$files) 

のようないくつかの他の方法を使用する必要がありますか?

+0

にラップすることができますか? – Roland

+0

各リスト項目の各ファイルを読み取り、それをさらに多くの手順で個別に処理します。私はdata.table内のファイルを '' DT [、sapply(files、read.csv)、by = meta] ''などのようなもので処理する可能性を認識していますが、 '' read.csv''の代わりに多くのステップが必要です。 – Phann

答えて

1

我々はそれがなぜあなたはこの出力を必要と信じていますlist

DT1 <- DT[, .(files = list(files)), meta] 
DT1$files 
#[[1]] 
#[1] 1 2 3 4 5 6 

#[[2]] 
#[1] 7 8 9 10 
+1

方法を知っているときはいつもとても簡単です... – Phann

関連する問題