为什么data.table在j部分为空且提供=时不进行排序

时间:2015-10-05 20:34:59

标签: r data.table

对于为什么我使用以下代码得到两个不同的结果,我感到有些困惑。

DT <- data.table(x=1:6,
                 y=rnorm(6),
                 group=factor(c("A", "B", "C", "C", "B", "A")), 
                 sex=c("M", "M", "M", "F", "F", "F"))

当我运行以下代码时

 DT[, .SD, by=group]

我打印了数据表的排序版本。但是,为什么以下代码不会给我相同的排序和打印版本?我按行的原始顺序获取数据表

 DT[, , by=group]

我确定有一个实现原因导致输出差异我还没有找到原因。是因为当by=部分为空时,j没有真正评估过吗?

如果我设置了密钥(当我想对表进行排序时我真的应该这样做)数据表本身显然会被排序

setkey(DT, group)
DT

我在这里缺少什么?

0 个答案:

没有答案