2014-05-18 15 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")) 

comando Stata:Come contare il numero di osservazioni in R come Stata conteggio comando

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

conteggio conta il numero di osservazioni che soddisfano le condizioni specificate. Se non vengono specificate condizioni, il conteggio visualizza il numero di osservazioni nei dati.

Come contare in R? Grazie.

+3

Ecco una mappatura dizionario ragionevole [ 'comandi Stata a R'] (https://github.com/EconometricsBySimulation/RStata/blob/master/dictionary.md) – mnel

risposta

9

La funzione with consente di utilizzare i riferimenti della colonna abbreviata e sum conterrà i risultati TRUE dalle espressioni.

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

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

Come @mnel sottolineato, si può anche fare:

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

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

Il vantaggio di questo è che si può fare:

nrow(aaa) 
## [1] 6 

E, il comportamento corrisponde Stata di count quasi esattamente (nonostante la sintassi).

0

È anche possibile utilizzare la funzione di filtro dal pacchetto dplyr che restituisce le righe con condizioni corrispondenti.

> library(dplyr) 

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