【问题标题】:R dplyr batting data example group_by returns incorrect resultR dplyr 击球数据示例 group_by 返回不正确的结果
【发布时间】:2014-05-05 14:29:08
【问题描述】:

我正在查看 dplyr 包中的“window-functions”小插图,您可以使用它:

vignette("window-functions", package="dplyr")

第一个示例似乎没有产生正确的结果。

我输入以下内容:

library(dplyr)
library(Lahman)

batting <- select(tbl_df(Batting), playerID, yearID, teamID, G, AB:H)
batting <- arrange(batting, playerID, yearID, teamID)
players <- group_by(batting, playerID)

filter(players, min_rank(desc(H)) <= 2 & H > 0)

得到:

Source: local data frame [32,724 x 7]
Groups: playerID

    playerID yearID teamID   G  AB   R   H
1  aaronha01   1966    ATL 158 603 117 168
2  aaronha01   1970    ATL 150 516 103 154
3  aaronto01   1962    ML1 141 334  54  77
4  aaronto01   1963    ML1  72 135   6  27
5  aaronto01   1965    ML1   8  16   1   3
6  aaronto01   1968    ATL  98 283  21  69
7  aaronto01   1969    ATL  49  60  13  15
8  aaronto01   1970    ATL  44  63   3  13
9   abadan01   2003    BOS   9  17   1   2
10  abadfe01   2012    HOU  37   7   0   1
..       ...    ...    ... ... ... ... ...

例如,这是 aaronto01 的错误输出。应该是:

subset(players, playerID == "aaronto01") %.% filter(min_rank(desc(H)) <= 2 & H > 0)

Source: local data frame [2 x 7]

   playerID yearID teamID   G  AB  R  H
1 aaronto01   1962    ML1 141 334 54 77
2 aaronto01   1968    ATL  98 283 21 69

dplyr 有问题吗?或者有人能找出我做错了什么吗?

【问题讨论】:

  • 我得到了正确答案。你运行的是什么版本?如果您使用的是这些软件包的当前版本,请尝试从干净的会话开始并再次运行它。你得到的数据框应该是Source: local data frame [24,834 x 7]
  • 哦,我明白了,@Arun 为您修复了一个错误(请参阅 stackoverflow.com/posts/23474962/revisions);那些数据表的人真是太好了,帮助解决 dplyr 问题
  • 抱歉,这是我在输入代码时犯的一个错误,但我认为这不是问题所在。我仍然遇到同样的问题。我正在使用 Spring Dance (3.1.0) 和最新版本的 dplyr。
  • 你不认为问题在于你安排球员而不是击球吗?
  • 我不这么认为。在上面的代码中一切看起来都好吗?我只是复制并粘贴它,我仍然得到相同的结果(顺便说一下,dplyr 是 0.1.3)。

标签: r dplyr


【解决方案1】:

供参考:

此错误已在 dplyr 0.1.3 中记录,并已在 Github 上的开发版本中修复。

https://github.com/hadley/dplyr/issues/313

同时,使用 devtools 直接从 repo 安装 0.2.0。

library(devtools)
devtools::install_github("hadley/dplyr")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多