J'ai du mal à trouver comment faire cela dans R. J'ai des données comme ça à partir d'un ensemble de ~ 50 fichiers CSV, chaque détaillant un des livres individuels transaction de vente:R: boucle à ajouter à la table de nouvelles colonnes, chacune peuplée avec des données agrégées à partir de différents fichiers CSV
**week 1**
**author** **title** **customerID**
author1 title1 1
author1 title2 2
author2 title3 3
author3 title4 3
**week 2**
**author** **title** **customerID**
author1 title1 4
author3 title4 5
author4 title5 1
author5 title6 6
... ~ 50 weeks, each from a separate csv file
Je veux obtenir une nouvelle table, chaque ligne représentant un auteur qui apparaît dans l'ensemble de données complet, et avec des colonnes pour chacune des ~ 50 semaines que j'ai données pour. Chaque cellule doit correspondre au nombre de ventes de livres de cet auteur au cours de cette semaine. Cela peut être calculé simplement en additionnant le nombre de lignes avec cet auteur dans le fichier des ventes de cette semaine. Il devrait ressembler à ceci:
**author** **week1** **week2** ... **week50**
author1 2 1 ...
author2 1 0 ...
author3 1 1 ...
author4 0 1 ...
author5 0 1 ...
...
Toutes les idées? Je sais comment obtenir la liste des auteurs uniques à partir de la première colonne. Et je sais comment charger les données de vente de chaque semaine dans un cadre de données. Mais j'ai besoin d'aide pour automatiser ce processus: 2) effectuer une itération sur les auteurs uniques 2) faire une itération sur le fichier csv de chaque semaine ou sur la trame 3) additionner les ventes de cet auteur pour cette semaine 4) ajouter count comme valeur pour cela cellule
Quelqu'un peut-il aider? Merci :-)
Vous n'avez pas besoin d'une boucle. Mettez toutes les données dans un data.frame avec une colonne supplémentaire 'week' et utilisez' plyr :: ddply' pour agréger. Si vous en avez vraiment besoin, vous pouvez modifier le data.frame par la suite. – Roland
plyr: ddply semble prometteur. mais sûrement une boucle serait une bonne stratégie car j'ai besoin de faire ça pour ~ 50 semaines différentes. –