2016-03-23 12 views
0

Rのデータテーブルを列の範囲に従ってグループ化しようとしています。 これまでのところ成功していません。どのようにそれを行う簡単な方法はありますか?R data.table列の範囲でグループ

例:

library(data.table) 

id <- c(1:1000) 
x1 <- sample(1:10, 1000, replace=T) 
x2 <- sample(1:10, 1000, replace=T) 
x3 <- sample(1:10, 1000, replace=T) 
x4 <- sample(1:10, 1000, replace=T) 
x5 <- sample(1:10, 1000, replace=T) 

df<-data.frame(id,x1,x2,x3,x4,x5) 
dt<-data.table(df) 

dt[,.N,by=list(x1,x2,x3,x4,x5)] 

今、私は

dt[,.N,by=list(x1:x5)] 

のようなものを使用したいと思いますが、それは、もちろん、動作しません。 この問題に対する比較的簡単なアプローチが欠けていますか?

+1

'×1:x5'は、エラーを返しますが、' X1を何をしたいですか:x5'は実際にあることを? – JeremyS

+1

これはv1.9.7より前のバージョン(開発バージョン)では利用できません。 [here](https://github.com/Rdatatable/data.table/wiki/Installation)からv1.9.7をダウンロードできます。 –

+0

を使用する前に '?": "'をRで表示してください – jangorecki

答えて

3

我々はpaste0()を使用することができます。

dt[, .N, by = c(paste0("x", 1:5))] 
+0

シンプルで機能します。ありがとう! – Martin