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"))
commande stata:
count if sex==1 & group1==2
count if sex==1 & group2=="A"
count compte le nombre d'observations qui remplissent les conditions spécifiées. Si aucune condition n'est spécifiée, count affiche le nombre d'observations dans les données.
Comment compter en R? Je vous remercie.
La fonction with
vous permettra d'utiliser des références de colonnes abrégées et sum
comptera TRUE
résultats de l'expression ou des expressions.
sum(with(aaa, sex==1 & group1==2))
## [1] 3
sum(with(aaa, sex==1 & group2=="A"))
## [1] 2
Comme l'a souligné @ mnel , vous pouvez également faire:
nrow(aaa[aaa$sex==1 & aaa$group1==2,])
## [1] 3
nrow(aaa[aaa$sex==1 & aaa$group2=="A",])
## [1] 2
L'avantage de cela est que vous pouvez faire:
nrow(aaa)
## [1] 6
Et, le comportement correspond presque exactement à count
de Stata (nonobstant la syntaxe).
Vous pouvez également utiliser la fonction de filtre du package dplyr qui renvoie des lignes avec des conditions correspondantes.
> library(dplyr)
> nrow(filter(aaa, sex == 1 & group1 == 2))
[1] 3
> nrow(filter(aaa, sex == 1 & group2 == "A"))
[1] 2