> library(data.table)
> A <- data.table(x = c(1,1,2,2), y = c(1,2,1,2), v = c(0.1,0.2,0.3,0.4))
> A
x y v
1: 1 1 0.1
2: 1 2 0.2
3: 2 1 0.3
4: 2 2 0.4
> B <- dcast(A, x~y)
Using v as value column: use value.var to override.
> B
x 1 2
1 1 0.1 0.2
2 2 0.3 0.4
По-видимому, я могу изменить таблицу данных с длинного на широкий, используя f.x. dcast пакета reshape2. Но data.table поставляется вместе с перегруженным оператором-скотчем, предлагающим такие параметры, как "by" и "group", которые заставляют меня задаться вопросом, можно ли достичь этого с помощью этого (для конкретных функций данных)?
Только один случайный пример из руководства:
DT[,lapply(.SD,sum),by=x]
Это выглядит потрясающе - но я пока не совсем понимаю его использование.
Я не нашел пути и примера для этого, так что, возможно, это просто невозможно, возможно, это даже не должно быть - так что определенная "нет, не возможна, потому что..." тогда, конечно, действительный ответ.