Conditionnel comte et group by dans la R
Je voudrais compter le nombre de lignes par type
s'ils répondent à la condition x == 0
. Comme une sorte de groupe par dans SQL
Voici un exemple de données
type x
search 0
NULL 0
public 0
search 1
home 0
home 1
search 0
- Pourriez-vous inclure un exemple de données avec R code? J'ai du mal à comprendre ce que vous proposez et comment votre exemple s'inscrit dans...
- Lors de l'inclusion de l'échantillon d'entrée, également inclure de sortie souhaité. Voir comment faire un exemple reproductible
Vous devez vous connecter pour publier un commentaire.
Je suis en supposant que vous voulez trouver le nombre de lignes lorsqu'une condition particulière (lorsqu'une variable est d'avoir une certaine valeur) est remplie.
Si c'est le cas, alors je suppose que vous avez un "x" comme une variable représentée dans une colonne. "x" peut prendre plusieurs valeurs. Supposons que vous voulez trouver le nombre de lignes, il y en à vos données lorsque x est égal à 0. Cela pourrait être fait par:
"data" est le nom de l'objet pour votre jeu de données dans R
EDIT:
Je vois votre édité dataframe maintenant. Vous pouvez l'utiliser pour résoudre votre problème:
Vous pouvez également utiliser la sqldf package:
qui donne le résultat suivant:
Compte tenu de la trame de données,
df=data.frame(type=c('search','NULL','public','search','home','home','search'),x=c(0,0,0,1,0,1,0))
Si vous voulez savoir combien de chaque valeur dans la colonne 1 ont une valeur dans la colonne 2 de zéro, alors vous pouvez utiliser:
table(df)[,1]
tant que vous ne travaillez qu'avec des 1 et de 0 pour obtenir la réponse:
Vous pourriez aussi le faire avec le
dplyr
package:qui donne:
Compte tenu de vos données est structuré comme un bloc de données, le code suivant a un meilleur temps de course que les réponses données ci-dessus:
Vous pouvez tester votre moment de l'exécution à l'aide de:
Dans mon cas, le temps d'exécution est d'environ 15 fois plus rapide, avec 1 million de lignes.