Bonjour à tous,
Je rencontre un problème avec une base de donnée nommée "data" de 24 000 données, qui contient de nombreuses catégories de POI par communes (dont les casernes de pompiers; "fire_station" in english) :
https://zupimages.net/up/19/13/eolg.jpg
Je souhaiterais récupérer les communes qui n'ont pas de casernes de pompier, pour arriver au final à avoir, dans le tableau, une colonne avec les catégories "Absence" et "Presence" pour chaque commune, suivant la présence ou non des casernes.
Etant débutant, voiçi les étapes que j'ai suivis :
Récupération des communes qui ont des casernes de pompiers :
caserne = subset(data, fclass == "fire_station", select = c(fclass, NOM_COM))
com_avec_caserne = caserne$NOM_COM
Récupération de toute les communes :
toute_les_com = data$NOM_COM
Croiser les 2 tableaux pour récupérer les communes qui n'ont pas de casernes :
com_sans_caserne = setdiff(toute_les_com, com_avec_caserne)
Création d'un tableau avec la colonne "ETAT" qui possède les arguments "presence","abscence", en fonction de la présence ou pas de caserne dans la commune
Final = data.frame(toute_les_commune, ETAT =ifelse(toute_les_commune%in%com_avec_caserne,"presence","abscence"))
J'arrive à ce résultat, tout va bien, la table contient le bon nombre de valeurs :
https://zupimages.net/up/19/13/5osw.jpg
Malheureusement, je voudrais maintenant pouvoir faire un espèce de "rechercheV" comme avec Excel, pour attribuer le champ ETAT de final à data
J'utilise cette formule :
Tableau_Fin = merge(Final, data, by.x = "Final$Communes", by.y = "data$NOM_COM", all.x = TRUE)
Cependant, cette formule que crée un tableau de plus de 33 millions de données, après un calcul de 30 minutes.
Bref, surement qu'il y a une méthode plus rapide et simple pour arriver à mes fins, et je suis preneurs :)
Merci à vous