2014-05-18 23 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 polecenia:Jak policzyć liczbę obserwacji w R jak Stata liczby poleceń

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

licznik zlicza liczbę obserwacji, które spełniają określone warunki. Jeśli nie podano żadnych warunków, liczba wyświetli liczbę obserwacji w danych.

Jak liczyć w R? Dziękuję Ci.

+3

tutaj uzasadnione odwzorowania słownika [ 'stata poleceń r'] (https://github.com/EconometricsBySimulation/RStata/blob/master/dictionary.md) – mnel

Odpowiedz

9

Funkcja with pozwoli ci używać skrótów do kolumn i sum będzie liczyć TRUE wyniki z wyrażenia (ów).

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

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

Jako @mnel wskazał, można również zrobić:

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

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

Korzyść z tego jest to, że można zrobić:

nrow(aaa) 
## [1] 6 

A, zachowanie pasuje Stata na count prawie dokładnie (niezależnie od składni).

0

Można również użyć funkcji filtru z pakietu dplyr, który zwraca wiersze z odpowiednimi warunkami.

> library(dplyr) 

> nrow(filter(aaa, sex == 1 & group1 == 2)) 
[1] 3 
> nrow(filter(aaa, sex == 1 & group2 == "A")) 
[1] 2 
Powiązane problemy