Cette question peut sembler similaire à d'autres, mais j'espère que c'est assez différent. Je veux prendre une liste spécifique de valeurs et compter à quelle fréquence elles apparaissent dans une autre liste de valeurs où les valeurs non-apparentes sont renvoyées à '0'.Obtenir le nombre de valeurs spécifiques dans un bloc de données qui apparaissent dans un autre
J'ai une trame de données (DF1) avec les valeurs suivantes:
Items <- c('Carrots','Plums','Pineapple','Turkey')
df1<-data.frame(Items)
>df1
Items
1 Carrots
2 Plums
3 Pineapple
4 Turkey
et une seconde trame de données (DF2) qui contient une colonne appelée 'chose':
> head(df2,n=10)
ID Date Thing
1 58150 2012-09-12 Potatoes
2 12357 2012-09-28 Turnips
3 50788 2012-10-04 Oranges
4 66038 2012-10-11 Potatoes
5 18119 2012-10-11 Oranges
6 48349 2012-10-14 Carrots
7 23328 2012-10-16 Peppers
8 66038 2012-10-26 Pineapple
9 32717 2012-10-28 Turnips
10 11345 2012-11-08 Oranges
Je sais le mot 'Turquie' n'apparaît que dans df1 PAS dans df2. Je veux retourner une table de fréquence ou le compte des éléments dans df1 qui apparaît dans df2 et retourner '0' pour le compte de la Turquie.
Comment puis-je récapituler les valeurs de la colonne Data Frame en utilisant les valeurs d'une autre? Le plus proche je suis arrivé était:
df2%>% count (Thing) %>% filter(Thing %in% df1$Items,)
Mais ce retour une liste d'éléments filtrés entre DF1 et DF2 si la Turquie revisité exclus. Tellement proche!
> df2%>% count (Thing) %>% filter(Thing %in% df1$Items,)
# A tibble: 3 x 2
Thing n
<fctr> <int>
1 Carrots 30
2 Pineapple 30
3 Plums 38
Je veux que ma sortie ressemble à ceci:
1 Carrots 30
2 Pineapple 30
3 Plums 38
4 Turkey 0
Je suis assez nouveau à R et complètement nouveau pour dplyr.
Merci Stephen, je reçu un avertissement de longueur: 'plus grande longueur de l'objet est pas un multiple de l'objet plus court length' – gzrcm
Ahh Je pense que je sais pourquoi. Ainsi le code ci-dessus regarde chaque article, pas seulement des articles uniques. J'ai mis à jour mon commentaire pour l'essayer. –
Je reçois toujours la même erreur, mais je vois ce que votre script essaie de réaliser. J'ai créé df1 vient d'un vecteur. Est-il possible de simplifier la boucle for en utilisant ce vecteur original? – gzrcm