gpt4 book ai didi

r - data.table 1.8.11 和聚合问题

转载 作者:行者123 更新时间:2023-12-01 01:03:00 26 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




更新 : 错误已修复。见下文。

这是我在 data.table 1.8.11 (r1101, 2014-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 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.11 提交 1103 中得到修复。来自 NEWS :

o Fixed a bug that arose due to recent fixes to fastorder, where aggregating with logical type at times lead to to wrong result. This closes #5307. Thanks to Clayton Stanley for reporting on SO: data.table 1.8.11 and aggregation issues


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

关于r - data.table 1.8.11 和聚合问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21437546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com