Я использую data.table ниже команду, которая должна выполнять аналогично ddply аналог:Data.table результат группировка не в правильном порядке
DT[,mean(var),by=group]
VS.
ddply(DF,.(group), summarise, mean(var))
Где levels(group)
дает "1","2","3","4","5"
.
Мой вопрос, почему DT
возвращает таблицу со столбцом группы не упорядочены, т.е. она возвращает:
Group V1
1- 2 0.0012030079
2- 3 0.0012680941
3- 4 -0.0003243492
4- 5 0.0008718012
5- 1 0.0009910559
Вместо ожидаемого и фактического выхода из ddply команды:
Group ..1
1 1 0.0009910559
2 2 0.0012030079
3 3 0.0012680941
4 4 -0.0003243492
5 5 0.0008718012
I воспользуемся обходным решением DT[,mean(var),by=group][order(group)]
, чтобы вернуть отсортированный список, но это довольно болезненно. Любая помощь по этому поводу приветствуется. Благодаря!
PS. Стол, который я скопировал из консоли R, похоже, не отображается здесь должным образом, я сожалею об этом. Как я могу отобразить его как таблицу?
Спасибо за идеальный ответ. Хотя мне интересно, почему упорядочение по уровням не выполнялось по умолчанию, как в случае с ddply. –
@ LukeShi Это был бы другой вопрос – akrun