2014-10-26 8 views
8

के साथ फ़िल्टर का उपयोग करके मैं 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 कॉलम के साथ एक डीएफ देता है, लेकिन मैं अपने डीएफ के सभी कॉलम रखना चाहता हूं। यही कारण है कि मुझे लगता है कि मुझे फ़िल्टर का उपयोग करना चाहिए।

उत्तर

15

मुझे नहीं लगता कि 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 
+0

'count' सबसे निश्चित रूप से सबसे नवीनतम सुविधाएं' dplyr' में है, लेकिन यह इरादा है उद्देश्य क्या ओ पी की जरूरत नहीं है। आप स्पॉट-ऑन हैं। – hrbrmstr

+0

नहीं, किनारे का खून बह रहा है - http://cran.r-project.org/web/packages/dplyr/dplyr.pdf – hrbrmstr

+0

स्नैकी होने की कोशिश नहीं कर रहा है, लेकिन "गिनती (' " – hrbrmstr

संबंधित मुद्दे