diff --git a/dev/gitlab_forge.R b/dev/gitlab_forge.R index ff2f64125e4cab68babb5c1367649e84fe81932b..3ac686a0b4f38a932bb81baf6ca43b2a2db65b9b 100644 --- a/dev/gitlab_forge.R +++ b/dev/gitlab_forge.R @@ -286,14 +286,24 @@ all_data_forge <- all_data_forge %>% mutate(origine ="Gitlab_Forge") all_data_forge <- left_join(all_data_forge, projects_topics, by = c("project_name" = "id")) -#data.frame avec les groupes et le nom pour left join ----- +#data.frame avec les groupes et le nom pour left join----- response_df <- data.frame( name = response$name, + name2 = response$path, #name2 car si le projet à changé de nom alors la jointure ne se fait plus par le nom mais par le passage d'origine ce qui corrige grandement le manque d'information groupe = response$namespace$path ) # Joindre les deux jeux de données all_data_forge <- all_data_forge %>% - left_join(response_df, by = c("project_name" = "name")) - -# sauvegarde du jeu de donnée ----- + left_join(response_df, by = c("project_name" = "name")) # Faire un premier left_join() sur la colonne name +all_data_forge <- all_data_forge %>% # Compléter les lignes non appariées avec un second left_join() sur la colonne name2 + left_join( + response_df %>% + select(name2, groupe), # On ne conserve que les colonnes utiles + by = c("project_name" = "name2"), + na_matches = "never" # Empêche l'association des NA + ) %>% + mutate(groupe = coalesce(groupe.x, groupe.y)) %>% # Priorité au 1er join + select(-groupe.x, -groupe.y) # Nettoyage des colonnes temporaires + +# sauvegarde du jeu de donnée----- save(all_data_forge, file = "gitlab_forge.RData")