2014-05-18 24 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 lệnh:Làm thế nào để đếm số lượng các quan sát trong R như Stata đếm lệnh

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

đếm đếm số quan sát đáp ứng các điều kiện quy định. Nếu không có điều kiện nào được chỉ định, số đếm sẽ hiển thị số lượng quan sát trong dữ liệu.

Cách tính bằng R? Cảm ơn bạn.

+3

Đây là bản đồ từ điển hợp lý ['lệnh stata thành r'] (https://github.com/EconometricsBySimulation/RStata/blob/master/dictionary.md) – mnel

Trả lời

9

Chức năng with sẽ cho phép bạn sử dụng tham chiếu cột viết tắt và sum sẽ tính TRUE kết quả từ (các) biểu thức.

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

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

Như @mnel chỉ ra, bạn cũng có thể làm:

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

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

Lợi ích của việc đó là bạn có thể làm:

nrow(aaa) 
## [1] 6 

Và, hành vi phù hợp với Stata của count gần chính xác (cú pháp mặc dù).

0

Bạn cũng có thể sử dụng chức năng lọc từ gói dplyr trả về các hàng có điều kiện phù hợp.

> library(dplyr) 

> nrow(filter(aaa, sex == 1 & group1 == 2)) 
[1] 3 
> nrow(filter(aaa, sex == 1 & group2 == "A")) 
[1] 2 
Các vấn đề liên quan