Obtenir le nombre d’observations au niveau du groupe avec plusieurs observations individuelles à partir de la base de données dans R
Comment puis-je obtenir un dataframe comme ceci:
soccer_player country position
"sam" USA left defender
"jon" USA right defender
"sam" USA left midfielder
"jon" USA offender
"bob" England goalie
"julie" England central midfielder
"jane" England goalie
À ressembler à ceci (pays avec le nombre de joueurs uniques par pays):
country player_count
USA 2
England 3
La complication évidente est qu'il y a plusieurs observations par joueur, donc je ne peux pas simplement faire table(df$country)
pour obtenir le nombre d'observations par pays.
J'ai été jouer avec le table()
et merge()
fonctions, mais n'ont pas eu de chance.
source d'informationauteur goldisfine
Vous devez vous connecter pour publier un commentaire.
Voici un moyen:
Chute de la troisième colonne, supprimez tous les doublons de noms de Pays paires, puis de compter les occurrences de chaque pays.
Sans l'aide de tous les paquets que vous pouvez faire:
C'est plus facile avec quelque chose comme
data.table
:La les nouvelles fonctionnalités de dplyr v 3.0 fournir une solution compacte:
De données:
Code:
Voici un sqldf solution:
et ici est une base de R solution:
Une base plus R option, à l'aide de
aggregate
: