J'essaie de remplir table1 avec les valeurs val2 correspondantes de table2
table1$New_val2 = table2[table2$pid==table1$pid,]$val2
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.
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".
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.