2016-09-07 1 views
1

Angenommen, ich habe genannt tbl_df pokemons wie folgt aus:Wie kann die Anzahl der T/F-Beobachtungen in Kettenfunktionen mit dplyr oder Base R gezählt werden?

 X.     Name Type.1 Type.2 Total HP Attack Defense Sp..Atk Sp..Def Speed Generation Legendary 
    (int)    (fctr) (fctr) (fctr) (int) (int) (int) (int) (int) (int) (int)  (int) (fctr) 
1  1    Bulbasaur Grass Poison 318 45  49  49  65  65 45   1  False 
2  2    Ivysaur Grass Poison 405 60  62  63  80  80 60   1  False 
3  3    Venusaur Grass Poison 525 80  82  83  100  100 80   1  False 
4  3 VenusaurMega Venusaur Grass Poison 625 80 100  123  122  120 80   1  False 
5  4   Charmander Fire   309 39  52  43  60  50 65   1  False 
6  5   Charmeleon Fire   405 58  64  58  80  65 80   1  False 

Ich bin eine Kette Funktion Schreiben (das Paket dplyr verwenden) die wichtigen Statistiken des Datensatzes zusammenfassen, wie folgt:

byType1 <- group_by(pokemons, Type.1) 
summaryStats_byType1 <- summarise(byType1, 
       count = n(), 
       averageTotal = mean(Total, na.rm = T), 
       medianGeneration = median(Generation, na.rm = T)) 

Wie soll ich die Anzahl der legendären Pokemons in der obigen Kettenfunktion zählen?

Antwort

0

Wir

summaryStats_byType1 <- pokemons %>% 
          group_by(Type.1) %>% 
          summarise(count = n(), 
           averageTotal = mean(Total, na.rm = T), 
           medianGeneration = median(Generation, na.rm = T), 
           CountLegendary = sum(as.character(Legendary)=="True")) 
+1

Dank tun! Ich habe nicht genug darauf geachtet, zu erkennen, dass die "Wahr"/"Falsch" -Strings sind, nicht das logische T/F. –

+0

@KatieTruong In 'R' ist die richtige Option' TRUE' 'FALSE ~ ohne Anführungszeichen. Es ist auch besser, nicht mit T oder F abzukürzen, da dies zu Problemen führen kann, wenn ein Objektname mit diesen definiert wird. – akrun

Verwandte Themen