R 数据表1.8.11和汇总问题 更新:错误已修复。见下文。
下面是我在数据中发现的一些有趣的行为。表1.8.11(R11012014-01-28)。by子句中包含的变量顺序会更改聚合结果:R 数据表1.8.11和汇总问题 更新:错误已修复。见下文。,r,data.table,R,Data.table,下面是我在数据中发现的一些有趣的行为。表1.8.11(R11012014-01-28)。by子句中包含的变量顺序会更改聚合结果: > foo = data.table(a=rep(c(0,1,0,1),2), b=rep(c(T,T,F,F),2), c=c(1,1,1,1,1,1,1,1)) > foo a b c 1: 0 TRUE 1 2: 1 TRUE 1 3: 0 FALSE 1 4: 1 FALSE 1 5: 0 TRUE 1 6: 1 TR
> foo = data.table(a=rep(c(0,1,0,1),2), b=rep(c(T,T,F,F),2), c=c(1,1,1,1,1,1,1,1))
> foo
a b c
1: 0 TRUE 1
2: 1 TRUE 1
3: 0 FALSE 1
4: 1 FALSE 1
5: 0 TRUE 1
6: 1 TRUE 1
7: 0 FALSE 1
8: 1 FALSE 1
> foo[, .N, by=list(b, a)]
b a N
1: TRUE 0 1
2: TRUE 1 1
3: FALSE 0 1
4: FALSE 1 1
5: TRUE 0 1
6: TRUE 1 1
7: FALSE 0 1
8: FALSE 1 1
> foo[, .N, by=list(a, b)]
a b N
1: 0 TRUE 2
2: 1 TRUE 2
3: 0 FALSE 2
4: 1 FALSE 2
>
data.table(1.8.10)的稳定版本中不会出现这种情况。感谢您的报告。这在v1.8.11commit 1103中已经修复。发件人:
o修复了由于最近对fastorder的修复而导致的错误,即使用逻辑类型进行聚合有时会导致错误的结果。这就结束了#5307。感谢Clayton Stanley的报道:
不,对我来说不是。Windows 7上的data.table_1.8.11。我得到了预期的第二个结果。你真的在新的课程中看到了这一点吗?从问题中复制/粘贴?使用R_3.0.2顺便说一句,我可以确认相同的结果。感谢catchOk,我使用的是2013-10-16版本的1001版,其效果与预期一致。天哪,我已经落后100次了…@Ricardosporta谢谢你提交这一期。我还在帖子中添加了版本信息。这个问题似乎离题了,因为它是一个bug报告。感谢您的及时修复。验证更改是否也适用于我的实际用例。
require(data.table) # commit 1103 v1.8.11
foo[, .N, by=list(b,a)]
b a N
1: TRUE 0 2
2: TRUE 1 2
3: FALSE 0 2
4: FALSE 1 2
foo[, .N, by=list(a,b)]
a b N
1: 0 TRUE 2
2: 1 TRUE 2
3: 0 FALSE 2
4: 1 FALSE 2