如何计算R中的观察数量,如Stata命令计数

sta*_*ata 8 r stata

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"))
Run Code Online (Sandbox Code Playgroud)

stata命令:

count if sex==1 & group1==2
count if sex==1 & group2=="A"
Run Code Online (Sandbox Code Playgroud)

count计算满足指定条件的观察数.如果未指定条件,count将显示数据中的观察数.

怎么算R?谢谢.

hrb*_*str 11

该with函数将允许您使用速记列引用,sum并将计算TRUE表达式的结果.

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

sum(with(aaa, sex==1 & group2=="A"))
## [1] 2
Run Code Online (Sandbox Code Playgroud)

正如@ mnel指出的那样,你也可以这样做:

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

nrow(aaa[aaa$sex==1 & aaa$group2=="A",])
## [1] 2
Run Code Online (Sandbox Code Playgroud)

这样做的好处是你可以做到:

nrow(aaa)
## [1] 6
Run Code Online (Sandbox Code Playgroud)

并且,该行为count几乎完全匹配Stata (尽管语法).