我正在尝试使用count()
帮助器过滤行。
我希望输出的是map %>% count(StudentID) = 3
。
例如在下面的df中,它应该取出所有具有StudentID 10016和10020的行,因为它们只是这些的2个实例,我想要3.
StudentID StudentGender Grade TermName ScaleName TestRITScore
100 M 9 Fall 2010 Language Usage 217
100 M 10 2011-2012 Language Usage 220
100 M 9 Fall 2010 Reading 210
10016 M 6 Fall 2010 Language Usage 217
10016 M 6 Fall 2010 Mathematics 210
10020 F 7 Fall 2010 Language Usage 210
10020 F 7 Fall 2010 Mathematics 213
10022 F 8 Fall 2010 Language Usage 232
10022 F 9 2011-2012 Language Usage 240
10022 F 8 Fall 2010 Mathematics 242
如果我这样做:
count(df, StudentID)
然后它只给了我一个2列的df,但我想保留我的df的所有列。这就是为什么我认为我应该使用过滤器。
答案 0 :(得分:19)
我不认为count
正是您所寻求的。请尝试n()
:
df %>%
group_by(StudentID) %>%
filter(n() == 3)
# Source: local data frame [6 x 6]
# Groups: StudentID
#
# StudentID StudentGender Grade TermName ScaleName TestRITScore
# 1 100 M 9 Fall 2010 Language Usage 217
# 2 100 M 10 2011-2012 Language Usage 220
# 3 100 M 9 Fall 2010 Reading 210
# 4 10022 F 8 Fall 2010 Language Usage 232
# 5 10022 F 9 2011-2012 Language Usage 240
# 6 10022 F 8 Fall 2010 Mathematics 242