R: Fusion de lignes dans le même tableau de données, la concaténation de certaines colonnes
J'ai mon tableau de données dans R. je veux fusionner les lignes qui ont la même customerID
, et puis concaténer les éléments des autres colonnes fusionnées.
Je veux aller de ce:
title author customerID
1 title1 author1 1
2 title2 author2 2
3 title3 author3 1
:
title author Group.1
1 title1, title3 author1, author3 1
2 title2 author2 2
OriginalL'auteur Harry Palmer | 2012-07-06
Vous devez vous connecter pour publier un commentaire.
La
aggregate
fonction devrait vous aider à trouver une solution:Ou, assurez-vous juste d'ajouter
stringsAsFactors = FALSE
lors de la création de votre bloc de données et vous êtes à peu près bon pour aller. Si vos données sont déjà intégrées, vous pouvez utiliser quelque chose commedat[c(1, 2)] = apply(dat[-3], 2, as.character)
pour les convertir en caractère d'abord, puis:Je ne suis pas sûr de comprendre votre question. En supposant que vous avez attribuée à la sortie de
aggregate
à un autre objet, diretemp
,temp$title
une liste (comme cettelist(
0` = c("title1", "titre 3"),1
= "titre2"). The
titre " etauthor
colonnes dans cet exemple sont des listes. Est-ce que vous recherchez?Hmm je pense que je comprends maintenant merci. J'ai été confus au sujet de types de données. Encore une question svp: Comment puis-je éliminer les doublons qui apparaissent dans une colonne/ligne d'un élément de liste après l'agrégation? J'ai essayé de données 1 <- unique(2$titre) mais curieusement cela ne fonctionne pas.
passons sur le fait que j'ai pensé à elle - lapply fonction!
OriginalL'auteur A5C1D2H2I1M1N2O1R2T1
Peut-être pas la meilleure solution, mais facile à comprendre:
aggregate(df[-3], by=list(df$id), c)
, maisby(df[-3], df$id, c)
vous donne également le même résultat, dans un tout autre format.thx, je n'utilise pas dataframes très souvent et je ne savais pas le
aggregate
fonction.OriginalL'auteur sgibb