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