le remplissage des colonnes avec correspondance des Identifiants de deux dataframes dans la R
J'ai deux dataframes (df1, df2). Je veux remplir l'ÂGE et le SEXE des valeurs de df1 à df2 conditionné à avoir le même ID entre les deux. J'ai essayé plusieurs façons à l'aide de la boucle et de la vérification de l'ID de l'objet de match entre les deux bloc de données, mais j'ai échoué. Le résultat devrait être comme dans le df3. J'ai un énorme jeu de données, donc je veux un morceau de code dans R qui peut faire cela facilement. Je vous remercie de votre aide dans cette. Merci.
df1:
ID AGE SEX
90901 39 0
90902 28 0
90903 40 1
df2:
ID AGE SEX Conc
90901 NA NA 5
90901 NA NA 10
90901 NA NA 15
90903 NA NA 30
90903 NA NA 5
90902 NA NA 2.45
90902 NA NA 51
90902 NA NA 1
70905 NA NA 0.5
result:
df3:
ID AGE SEX Conc
90901 39 0 5
90901 39 0 10
90901 39 0 15
90903 40 1 30
90903 40 1 5
90902 28 1 2.45
90902 28 0 51
90902 28 0 1
70905 NA NA 0.5
double possible de Comment adhérer à des trames de données dans R (intérieure, extérieure, gauche, droite)?
Merci à vous tous! C'est incroyable:-) j'espère que j'arrive à un point où je comprends et jouer avec le appliquer les fonctions de la famille. Ils sont très utiles, mais a besoin d'une solide réflexion. Ce serait génial si certains corps me guider vers des ressources utiles.
Merci à vous tous! C'est incroyable:-) j'espère que j'arrive à un point où je comprends et jouer avec le appliquer les fonctions de la famille. Ils sont très utiles, mais a besoin d'une solide réflexion. Ce serait génial si certains corps me guider vers des ressources utiles.
OriginalL'auteur Amer | 2014-08-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
match
aveclapply
pour cela. Si nous itération[[
avec appariement sur leID
colonne de chacun des ensembles de données originaux sur un vecteur de noms, on peut obtenir le résultat souhaité.Noter que c'est aussi un peu plus rapide que
merge
.OriginalL'auteur Rich Scriven
Essayer
merge(df1, df2, by = "id")
. Cela permettra de fusionner vos deux trames de données ensemble. Si votre exemple est une bonne représentation de vos données réelles, alors vous pouvez aller de l'avant et de la baisse de l'âge et du sexe des colonnes de df2 avant de les fusionner.Si vous avez besoin de garder les lignes de df2, même lorsque vous ne disposez pas d'un id correspondant dans df1, puis vous faites cela:
Vous pouvez en apprendre plus sur
merge
(ou toute fonction r) en tapant?merge()
dans votre r de la console.OriginalL'auteur jed