R - 汇总数据 - "by"和"keyby"之间的区别?



我注意到以下两个命令会产生非常不同的结果,所以我想知道有什么区别?

TestData <- TestData[, keyby = c("group","date"), 
.(totalCount = sum(count))]
TestData <- TestData[, by = c("group","date"), 
.(totalCount = sum(count))]

根据备忘单:

dt[, j, by = .(a(] – 按指定列中的值对行进行分组。

dt[, j, keyby = .(a(] – 按值对行进行分组和同时排序 在指定的列中。

使用keyby而不是by将使结果行按您分组的列排序。 否则,使用by结果的行顺序将保留为输入数据中组的顺序。 拥有有序的数据可以加快对此进行进一步的计算。另一方面,用户可能需要原始订单。在大多数情况下,keyby会比by略快。

最新更新