Fusion de jeux de données avec les left_join()

0

La question

im travaillant sur la fusion de jeux de données avec la fonction left_join().

Les ensembles de données jutilise sont ci-dessus:

> new_GemData<-lapply(GemData, head)
> dput(head(new_GemData))
list(cntry = c(".", "ABW", "AFG", "AGO", "AIA", "ALB"), all_tea = c(6.2942258871149, 
NA, NA, 26.1555808326023, NA, NA), all_nes_entre = c(1.88915438310442, 
NA, NA, 7.6296866239702, NA, NA), all_opp_entre = c(4.32969440907848, 
NA, NA, 17.1323566956254, NA, NA), all_tea_male_entre = c(8.96311504196867, 
NA, NA, 26.9322388085985, NA, NA), all_tea_female_entre = c(3.53006299869866, 
NA, NA, 25.5152945703973, NA, NA))
> new_Hofstede<-lapply(Hofstede, head)
> dput(head(new_Hofstede))
list(ctr = c("ALB", "ALG", "AND", "ARE", "ARG", "ARM"), country = c("Albania", 
"Algeria", "Andorra", "United Arab Emirates", "Argentina", "Armenia"
), `Power Distance` = c(".", ".", ".", "80", "49", "."), Individualism = c(".", 
".", ".", "38", "46", "."), Masculinity = c(".", ".", ".", "53", 
"56", "."), `Uncertainty Avoidance` = c(".", ".", ".", "68", 
"86", "."))
> new_GpsData<-lapply(GpsData, head)
> dput(head(new_GpsData))
list(country = c("Afghanistan", "Algeria", "Argentina", "Australia", 
"Austria", "Bangladesh"), isocode = c("AFG", "DZA", "ARG", "AUS", 
"AUT", "BGD"), patience = c(-0.201360121369362, 0.0598152466118336, 
-0.229307979345322, 0.65700376033783, 0.608285009860992, 0.0811367109417915
), risktaking = c(0.120764262974262, 0.391530483961105, 0.0415031686425209, 
0.137136548757553, -0.0618291534483433, -0.198067754507065), 
    posrecip = c(0.2896409034729, -0.598255336284637, 0.159679308533669, 
    0.069660022854805, 0.161046594381332, 0.154367566108704), 
    negrecip = c(0.254712462425232, 0.254900813102722, -0.140457272529602, 
    0.0221897512674332, -0.0554154515266418, 0.113288171589375
    ))

La colonne commune dont j'ai besoin est les Noms de Pays, je sais que ISO3 est la méthode la plus appropriée pour les fusionner.

Ici, im essayant de les fusionner:

new_Hofstede$code=countrycode(new_Hofstede$`country`, origin = 'country.name', destination = 'iso3c')

merged_data2 <- new_Hofstede %>% 
  rename(iso3 = 'code') %>% 
  left_join(new_GemData, by = c('iso3' = 'cntry') )

all_data2 <- left_join(merged_data2, new_GpsData, by=c("iso3"="isocode"))

EDIT: je ne sais pas si la fusion que j'ai fait est correct et j'aimerais vos suggestions , des propositions sur la façon de fusionner ces ensembles de données, GEM, Hofstede et GPS.

left-join r
2021-11-16 17:22:29
1

La meilleure réponse

1

Vous pouvez spécifier dans left_join() ce que le nom de champ est chaque table, pas besoin de renommer l'avance. Est-ce à donner ce que vous voulez? Je baisse country à partir de new_GpsData car il est déjà là, à partir d'une autre table.

library(dplyr)

new_Hofstede %>% 
  left_join(new_GemData, by = c(ctr = "cntry")) %>% 
  left_join(select(new_GpsData, -country), by = c(ctr = "isocode"))
2021-11-16 17:32:37

Sir nous avons donc réalisé pour fusionner ces 3 ensembles de données correctement ? Je comprends votre suggestion pour l'instant.
Liam

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................