2016-03-23 3 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

'x1: x5' возвращает ошибку, что вы хотите' x1: x5' на самом деле быть? – JeremyS

+1

Это не доступно в версиях до версии v.1.9.7 (версия для разработки). Вы можете скачать v1.9.7 из [здесь] (https://github.com/Rdatatable/data.table/wiki/Installation), и он должен работать –

+0

читать '?": "' В R перед его использованием – jangorecki

ответ

3

Мы могли бы использовать paste0():

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

Простой и работает. Благодаря! – Martin

Смежные вопросы