Ответ 1
DT[,list(z=sum(y)+3,a=mean(y*z)),by=x]
x z a
1: a 6 9
2: b 15 60
Поскольку вы новичок в data.table
, я рекомендую вам также изучить страницу справки функции setnames
, а также ?data.table
и data.table
виньетки.
Я являюсь новым пользователем пакета data.table в Р. Я пытаюсь дать имя новому столбцу, созданному командой "group by"
> DT = data.table(x=rep(c("a","b"),c(2,3)),y=1:5)
> DT
x y
1: a 1
2: a 2
3: b 3
4: b 4
5: b 5
> DT[,{z=sum(y);z+3},by=x]
x V1
1: a 6
2: b 15
Кроме того, возможно ли выполнить одну группу по операциям в одной команде, что приведет к чему-то вроде:
x V1 V2
1: a 6 something
2: b 15 something
Спасибо
DT[,list(z=sum(y)+3,a=mean(y*z)),by=x]
x z a
1: a 6 9
2: b 15 60
Поскольку вы новичок в data.table
, я рекомендую вам также изучить страницу справки функции setnames
, а также ?data.table
и data.table
виньетки.