2014-10-26 42 views
8

Sto tentando di filtrare la riga utilizzando l'helper count(). Quello che vorrei come output sono tutte le righe in cui lo map %>% count(StudentID) = 3.Utilizzo del filtro con conteggio

Per esempio nel DF di seguito, si deve togliere tutti i file con StudentID 10016 e 10020 come sono solo 2 esempi di questi e voglio 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 

se faccio:

count(df, StudentID) 

quindi mi dà solo un df con 2 colonne, ma voglio conservare tutte le colonne del mio df. ecco perché penso che dovrei usare il filtro.

risposta

15

Non penso che count sia quello che stai cercando. Prova n() invece:

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 
+0

'CONTO' è sicuramente nel bleeding edge' dplyr' ma è destinato scopo non è quello che le esigenze OP. Sei azzeccato. – hrbrmstr

+0

No, bleeding edge CRAN - http://cran.r-project.org/web/packages/dplyr/dplyr.pdf – hrbrmstr

+0

Non cercare di essere snarky, ma cercare il PDF per "contare" ('" – hrbrmstr

Problemi correlati