我注意到以下两个命令产生非常不同的结果,所以我想知道有什么区别?
TestData <- TestData[, keyby = c("group","date"),
.(totalCount = sum(count))]
TestData <- TestData[, by = c("group","date"),
.(totalCount = sum(count))]
Run Code Online (Sandbox Code Playgroud)
根据备忘单:
dt[, j, by = .(a)] – 按指定列中的值对行进行分组。
和
dt[, j, keyby = .(a)] – 按指定列中的值对行进行分组和同时排序。
使用keyby而不是by使结果行按您分组的列排序。否则,当使用by结果的行顺序时,将保留作为输入数据中组的顺序。对数据进行排序可以加快一些进一步的计算。另一方面,用户可能需要原始订单。在大多数情况下keyby会比 略快by。