我注意到以下两个命令会产生非常不同的结果,所以我想知道有什么区别?
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
略快。