R dplyr击球数据示例group_by返回不正确的结果

时间:2014-05-05 14:29:08

标签: r dplyr

我正在查看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有问题吗?或者有人可以选择我做错了什么?

1 个答案:

答案 0 :(得分: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")