web-dev-qa-db-fra.com

Comment compter le nombre d'observations dans R comme le nombre de commandes 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"))

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.

8
stata

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).

11
hrbrmstr

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
3
Nikos Tavoularis