Lemaire Alexia a écrit :Merci pour ta réponse.
Voici la structure des fichiers :
Pour ma base de données :
identifiant<-(1:5)
code_postal<-c(68000, 67540, 67200, 88000, 67120)
code_Insee<-c(68224,67365,67482,88160, 67300)
df<-data.frame(identifiant, code_Insee, code_postal)
Pour le fichier correspondant à la liste répertoriant le zonage :
code_Insee<-c(68224,67365,67482)
libellé<-c("Mulhouse","Ostwald","Strasbourg")
Zonage<- c("ZIP", "ZAC", "HV")
df<-data.frame(code_Insee, libellé, Zonage)
Par ailleurs, on m'a proposé ce midi d'utiliser un left joint en prenant le code INSEE comme clé de jointure, et ca semble prometteur :-)
Merci pour l'exemple, j'étais un peu hors service !
Oui effectivement pour ce que tu souhaites faire (si j'ai bien compris en tout cas), un left_join est une solution classique.
Tu peux faire un df3 <- left_join(df1, df2,
by = "code_Insee")
Il existe plusieurs types de jointure, celle-ci signifie qu'on va prendre les lignes de df1,
puis ensuite on va regarder quelles sont les lignes dans df2 qui ont les valeurs code_Insee de df1. S'il en existe (ici oui, ce sont chacune des lignes de df2 car elles ont les valeurs code_Insee 68224,67365,67482 présentes dans df1 mais tu aurais pu dans un autre exemple avoir des lignes de df2 n'ayant pas de valeur code_Insee dans df1) alors, les colonnes autres que celle de jointure (
code_Insee) de df2 (libellé et Zonage) vont être "collées" à df1.
Biensûr, il y aura une valeur dans ces 2 colonnes
seulement pour les lignes qui ont pu être associées. Parfois ce n'est pas nécessaire de préciser le 3ème argument, R peut le deviner. C'est le cas ici car dans ton df1 et df2, seule une variable est en commun (code_Insee). Mais bon, en général c'est mieux de préciser quand-même, notamment si dans tes 2 data.frames, tu as plusieurs colonnes portant le même nom. Dans ce cas, si tu ne précises pas tu peux te retrouver à faire une jointure via une colonne que tu ne voulais pas.
Donc dans cet exemple, tu as au final 3 lignes avec le libellé et Zonage car l'association a été faite, mais 2 autres vides car aucune association faite car code_Insee non présents dans df2.
J'espère que c'était un minimum clair...de toute façon je pense que t'avais déjà un peu compris le principe en essayant. Dans la pire des cas, c'est du contenu que tu trouveras facilement sur internet avec des schémas. Ca sera plus simple !
Bonne fin de journée