[英]How to count the number of observations in R like Stata command count
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命令:
count if sex==1 & group1==2
count if sex==1 & group2=="A"
count計算滿足指定條件的觀察數。 如果未指定條件,count將顯示數據中的觀察數。
怎么算R? 謝謝。
with
函數將允許您使用速記列引用, sum
將從表達式計算TRUE
結果。
sum(with(aaa, sex==1 & group1==2))
## [1] 3
sum(with(aaa, sex==1 & group2=="A"))
## [1] 2
正如@ mnel指出的那樣,你也可以這樣做:
nrow(aaa[aaa$sex==1 & aaa$group1==2,])
## [1] 3
nrow(aaa[aaa$sex==1 & aaa$group2=="A",])
## [1] 2
這樣做的好處是你可以做到:
nrow(aaa)
## [1] 6
並且,該行為幾乎完全匹配Stata的count
(盡管語法)。
您還可以使用dplyr包中的過濾器函數,該函數返回具有匹配條件的行。
> library(dplyr)
> nrow(filter(aaa, sex == 1 & group1 == 2))
[1] 3
> nrow(filter(aaa, sex == 1 & group2 == "A"))
[1] 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.