De l'Union de dataframes dans R par rownames
J'ai 4 dataframes, chaque index dans une liste. Je tiens à les combiner tout à fait comme un dataframe. Dans le jeu de langage des mathématiques, il serait le plus judicieux pour que ce soit l'union sur la rownames. Donc si je peux avoir quelque chose comme ceci:
U <- union(dfSub[[1]], dfSub[[2]], dfSub[[3]], dfSub[[4]])
Le problème avec le union
fonction est qu'elle ne fonctionne que sur des vecteurs. Comment puis-je obtenir que cela fonctionne sur dataframes?
- Comment puis-je traduire cela dans la R?
- Est-il un meilleur moyen d'atteindre le résultat souhaité?
EDIT: Comment puis-je préserver rownames après l'union?
Pouvez-vous fournir des exemples de données qui montre ce que vous essayez de préserver?
au minimum,
au minimum,
lapply(dfSub, row names)
ou si c'est trop, str(lapply(dfSub, row names))
.OriginalL'auteur CodeKingPlusPlus | 2013-05-06
Vous devez vous connecter pour publier un commentaire.
D'abord, les lier ensemble:
ou mieux:
Cette première étape nécessite que toutes les données.les cadres ont les mêmes noms de colonnes. Si ce n'est pas le cas, alors vous pourriez être intéressé par le
rbind.fill
fonction de laplyr
package:Ensuite, pour supprimer les doublons si vous avez besoin (comme l'ensemble de l'union):
Pour clarifier, comment puis-je obtenir le rownames d'être conservé? Une solution bon marché pourrait être d'ajouter une colonne dans chaque dataframe avec le rowname.
Ne peut-on pas répondre que par vous-même en train d'essayer cela?
Il ne de l'union, mais la rownames ne sont pas conservées. J'ai besoin de la rownames être préservée.
Les critiques constructives de celui qui downvoted?
OriginalL'auteur flodel
Vous pouvez combiner dataframes avec le fusion fonction. Puisque vous avez plusieurs dataframes vous pouvez utiliser Réduire pour les fusionner en une seule fois.
Comme un exemple:
Sera le rownames() à partir de dfSub[[1]], dfSub[[2]], ... être présent dans l'union?
Les ellipses il suffit de prendre les arguments de la fonction et de les passer à la fonction suivante. Donc, dans ce cas de Réduire attend de la fonction pour obtenir un accumulateur et d'un vecteur à s'accumuler. Il transmet simplement l'accumulateur et le vecteur vers le bas dans la fusion.
Pour celui qui downvoted, pouvez-vous expliquer pourquoi cette réponse n'est pas utile?
Je suppose qu'ils downvoted parce que la question est à propos d'un ensemble de l'union et de votre réponse, c'est comme une jointure
OriginalL'auteur joneshf