【发布时间】: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)。