web-dev-qa-db-fra.com

R - Ajouter une nouvelle colonne à une image en utilisant les valeurs correspondantes d'une autre image

J'essaie de remplir table1 avec les valeurs val2 correspondantes de table2

table1$New_val2 = table2[table2$pid==table1$pid,]$val2

 enter image description here

Mais je reçois l'avertissement 

longer object length is not a multiple of shorter object length

ce qui est assez juste parce que les longueurs de table ne sont pas les mêmes.

S'il vous plaît veuillez me diriger sur la bonne façon de faire cela.

14
andy

Je ne sais pas si vous voulez dire cela, mais vous pourriez utiliser:

newtable <- merge(table1,table2, by  = "pid") 

Cela créera une nouvelle table appelée newtable, avec 3 colonnes et les valeurs correspondant à l'id, dans ce cas "pid". 

3
adrian1121

Je suis bien en retard, mais au cas où quelqu'un poserait la même question:
C'est exactement ce que fait inner_merge de dplyr.

table1.df <- dplyr::inner_merge(table1, table2, by=pid)

La commande secondaire spécifie quelle colonne doit être utilisée pour faire correspondre les lignes.

0
Alexander Kielland