2014-05-18 12 views
7
aaa<- data.frame(sex=c(1,1,2,2,1,1), group1=c(1,2,1,2,2,2),group2=c("A","B","A","B","A","B")) 

Stata-Befehl zählen:Wie die Anzahl der Beobachtungen in R wie Stata Befehlszählwert

count if sex==1 & group1==2 
count if sex==1 & group2=="A" 

Zählung zählt die Anzahl der Beobachtungen, die die angegebenen Bedingungen erfüllen. Wenn keine Bedingungen angegeben sind, zeigt count die Anzahl der Beobachtungen in den Daten an.

Wie in R zählen? Vielen Dank.

+3

Hier ist ein vernünftiges Wörterbuch-Mapping [ 'Stata r' Befehlen] (https://github.com/EconometricsBySimulation/RStata/blob/master/dictionary.md) – mnel

Antwort

9

Die Funktion with ermöglicht Ihnen die Verwendung von Kurzschrift-Spaltenreferenzen, und sum zählt die TRUE Ergebnisse der Ausdrücke.

sum(with(aaa, sex==1 & group1==2)) 
## [1] 3 

sum(with(aaa, sex==1 & group2=="A")) 
## [1] 2 

Wie @mnel darauf hingewiesen, können Sie auch tun:

nrow(aaa[aaa$sex==1 & aaa$group1==2,]) 
## [1] 3 

nrow(aaa[aaa$sex==1 & aaa$group2=="A",]) 
## [1] 2 

Der Vorteil davon ist, dass Sie tun können:

nrow(aaa) 
## [1] 6 

Und das Verhalten entspricht Stata des count fast genau (Syntax ungeachtet).

0

Sie können auch die Filterfunktion aus dem Paket dplyr verwenden, das Zeilen mit übereinstimmenden Bedingungen zurückgibt.

> library(dplyr) 

> nrow(filter(aaa, sex == 1 & group1 == 2)) 
[1] 3 
> nrow(filter(aaa, sex == 1 & group2 == "A")) 
[1] 2 
Verwandte Themen