0
votes

Dans deux data.frames dans R, recherchez des valeurs dans une donnée.frame, en fonction de plusieurs variables dans les autres données.

La question précédente a été fermée, mais la solution facile ne semble pas fonctionner. J'ai donc expliqué ma question ici.

J'ai deux dataframes, DF1 et DF2. DF1 a beaucoup de données brutes, DF2 a des pointeurs basés sur "valeur_a" où regarder dans les données brutes. xxx

Je voudrais utiliser les valeurs dans DF2, pour recherche dans df1. Donc, pour chaque "identifiant", et c'est unique "valse_a" donné dans df2, recherchez la "valeur_b" et "value_c" correspondante dans df1, afin que je puisse générer un DF3 qui ressemble à ceci: xxx

Évidemment, j'ai des centaines de "id" à couvrir. Puisque je veux trouver plusieurs variables ("valse_b", "value_c" mais pas "value_d") tire () ne fonctionnera pas car il ne tire qu'une variable. Basé sur Cette page j'ai commencé à penser à joindre. Un innerjoin () ne fonctionne pas non plus, car je dois sélectionner plusieurs variables (ID & Value_a). La fusion comme celle-ci xxx

est de manière proplique ce que je pense, mais cela jette une erreur: erreur dans correction.by (by.x, x) : Objet 'valse_a' non trouvé

Je pensais également à utiliser TAPPLY () mais je suis coincé à utiliser deux données différentes.frames. Est-ce que quelqu'un a une bonne idée sur la façon de s'attaquer à cela?

Cordialement,

Johan


0 commentaires

3 Réponses :


1
votes

Je crois que cela peut résoudre votre problème. J'espère que cela aide:

merge(df2,df1,by.x=c('id','value_a'),by.y=c('id','value_a'),all.x=T)

  id value_a value_b value_c value_d
1  1      53      85      -2       6
2  2      45      95       1      14
3  3      47     101       2      24


0 commentaires

1
votes

Je crois que cela sera utile: xxx

sortie: xxx


0 commentaires

0
votes

Les deux réponses du travail de canard et de CODEZ0MB1E, lors de l'ajout %>%>%>% (ID, valeur_a, valeur_b, valeur_c) Ils donnent la sortie xxx

merci pour Les commentaires dans mon interprétation erroné propérable des deux innerjoin () et fusionnent !


0 commentaires