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

时间:2014-05-18 22:54:10

标签: 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"))

stata命令:

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

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

如何计算R?谢谢。

2 个答案:

答案 0 :(得分:11)

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(尽管语法不同)。

答案 1 :(得分:3)

您还可以使用dplyr包中的过滤器函数,该函数返回具有匹配条件的行。

> library(dplyr)

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