为什么在聚合后会获得重复的data.table行?

时间:2015-09-20 21:13:20

标签: r data.table

我通过列聚合data.table,并将其设置为键,然后惊讶地发现该表仍包含重复的行。 这是什么原因?

我的表格很特别,因为我有两列具有完全相同的值(但由于实际原因必须保留两者),并且我将其中一个聚合在一起。

一个简单的例子:

y

1 个答案:

答案 0 :(得分:1)

如果对所有列使用聚合函数,则会得到预期的结果,而不会出现重复的行:

> library(data.table)
> dat = data.table(
+   class1 = c('a', 'a', 'b'), 
+   class2 = c('a', 'a', 'b'), 
+   value = 1:3)
> aggr = dat[, list(class2[[1]], sum(value)), keyby = class1]
> stopifnot(!any(duplicated(aggr)))

请注意,不同之处在于我采用class2列的第一个元素。请注意,输出一个值的任何其他函数也可以。