r - 使用带计数的过滤器

标签 r filter count dplyr

我正在尝试使用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的所有列。那就是为什么我认为我应该使用过滤器。

最佳答案

我认为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

关于r - 使用带计数的过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26573285/

相关文章:

javascript - 使用 .filter 过滤对象数组

c++ - 显示正面和反面被抛出的时间 C++

r 替换低于矩阵中每列平均值的值

r - 尝试在 dygraphs 中绘制每周 ts 对象时无法将索引转换为适当的类型

R - 过滤数据框以仅包含列数符合条件的行

SQL重新查询同一张表

r - 在大型矩阵中执行单元格计算的有效方法

ide - R 中的命令历史记录

SQL 计数为零值