2016-07-28 5 views
0

Ich habe Daten, die wie folgt aussehen:Summierfunktion in R

Province  status 
KZN   Open 
KZN   Closed 
KZN   Open 
KZN   Closed 
OFS   Open 
OFS   Closed 
OFS   Open 
OFS   Closed 

Wie kann ich berechnen, wie oft der Status auf „Öffnen“ und „Geschlossen“ pro Provinz erscheinen. Im Grunde ich bin auf der Suche um ein Ergebnis zu erhalten, die wie folgt aussieht:

Province Status Count 
KZN  Closed 2 
KZN  Open 2 
OFS  Closed 2 
OFS  Open 2 

Antwort

1

table genug ist

df = data.frame(Province = rep(c("KZN", "OFS"), each = 4L), status = rep(c("Open", "Closed"), 4L)) 
table(df) #See it's wide, and you asked for long 

#  status 
#Province Closed Open 
#  KZN  2 2 
#  OFS  2 2 

as.data.frame(table(df)) #This turns it to long format 

#  Province status Freq 
#1  KZN  Closed 2 
#2  OFS  Closed 2 
#3  KZN  Open  2 
#4  OFS  Open  2 
0

Wir können verwenden data.table

library(data.table) 
setDT(df1)[,.(Count = .N) , .(Province, status)] 

Oder mit dplyr

library(dplyr) 
df1 %>% 
    count(Province, status)