1919# ' @examples
2020# ' \donttest{
2121# ' # Remplace jeton par la valeur du jeton genere sur le catalogue des API :
22- # ' if (exists("jeton")) {
23- # ' get_dataset(jeton,
24- # ' "GEO2017REE2017",
25- # ' "NA5_B-ENTR_INDIVIDUELLE",
26- # ' "all.all",
27- # ' "COM",
28- # ' "51108")
29- # ' }
22+ # ' get_dataset(jeton,
23+ # ' "GEO2017REE2017",
24+ # ' "NA5_B-ENTR_INDIVIDUELLE",
25+ # ' "all.all",
26+ # ' "COM",
27+ # ' "51108")
3028# '
3129# ' # Genere une fenetre dans laquelle vous pouvez renseigner le jeton genere sur le catalogue des API
3230# ' # Permet de ne pas stocker le jeton en clair dans le programme
33- # ' if (interactive() && identical(Sys.getenv("RSTUDIO"), "1")) {
34- # ' get_dataset(rstudioapi::askForPassword("jeton:"),
35- # ' "GEO2017REE2017",
36- # ' "NA5_B-ENTR_INDIVIDUELLE",
37- # ' "all.all",
38- # ' "COM",
39- # ' "51108")
40- # ' }
31+ # ' get_dataset(.rs.askForPassword("jeton:"),
32+ # ' "GEO2017REE2017",
33+ # ' "NA5_B-ENTR_INDIVIDUELLE",
34+ # ' "all.all",
35+ # ' "COM",
36+ # ' "51108")
4137# '
4238# ' # Necessite la modification du fichier .Renviron en ajoutant
4339# ' # une ligne jeton = "la valeur du jeton genere sur le catalogue des API"
4440# ' # Pour acceder facilement au fichier .Renviron, vous pouvez
4541# ' # utiliser la commande usethis::edit_r_environ("user")
4642# ' # Necessite de redemarer R après avoir fait la modification
4743# ' # Ce parametre doit etre mis a jour à chaque fois qu'un nouveau jeton est genere
48- # ' if (!is.na(Sys.getenv("jeton", NA))) {
49- # ' get_dataset(Sys.getenv("jeton"),
50- # ' "GEO2017REE2017",
51- # ' "NA5_B-ENTR_INDIVIDUELLE",
52- # ' "all.all",
53- # ' "COM",
54- # ' "51108")
55- # ' }
44+ # ' get_dataset(Sys.getenv (jeton),
45+ # ' "GEO2017REE2017",
46+ # ' "NA5_B-ENTR_INDIVIDUELLE",
47+ # ' "all.all",
48+ # ' "COM",
49+ # ' "51108")
5650# ' }
5751
5852
@@ -70,26 +64,19 @@ get_dataset <- function(jeton, jeu_donnees, croisement, modalite, nivgeo, codgeo
7064
7165 if (stringr :: str_detect(res , " Invalid Credentials. Make sure you have given the correct access token" )){
7266 print(' Erreur - Jeton invalide' )
73- }
74-
75- else if (stringr :: str_detect(res , " Aucune cellule ne correspond a la requ\u 00eate" )){
67+ } else if (stringr :: str_detect(res , " Aucune cellule ne correspond a la requ\u 00eate" )){
7668 print(' Erreur - Param\u 00e8tre(s) de la requ\u 00eate incorrect(s)' )
77- }
78- else if (stringr :: str_detect(res , " Resource forbidden " )){
69+ } else if (stringr :: str_detect(res , " Resource forbidden " )){
7970 print(" Erreur - Scouscription a l API donn\u 00e9es locales non r\u 00e9alis\u 00e9e" )
80- }
81- else if (stringr :: str_detect(res , " quota" )== T ){
71+ } else if (stringr :: str_detect(res , " quota" )== T ){
8272 print(" Erreur- Trop de requ\u 00eates, faire une pause" )
83- }
84-
85- else {
73+ } else {
8674
8775 res <- jsonlite :: fromJSON(res )
8876
8977 if (length(as.data.frame(res $ Cellule )) == 0 ){
9078 print(' Erreur - Param\u 00e8tre(s) de la requ\u 00eate incorrect(s)' )
91- }
92- else {
79+ } else {
9380
9481 nb_var <- stringr :: str_count(croisement , " -" ) + 1
9582
@@ -113,19 +100,30 @@ get_dataset <- function(jeton, jeu_donnees, croisement, modalite, nivgeo, codgeo
113100 liste_code <- NULL
114101 if (nb_var > 1 ) {
115102 for (i in 1 : length(temp )) {
116- liste_code_temp <- data.frame (info_modalite [i ,]$ V1 , info_modalite [i ,]$ V2 , temp [[i ]][,' @code' ], temp [[i ]][,' Libelle' ],
117- stringsAsFactors = FALSE )
118- colnames(liste_code_temp ) <- c(" variable" , " lib_varible" , " modalite" , " lib_modalite" )
103+ if (dim(as.data.frame(temp [[i ]]))[1 ]> 1 ){
104+ liste_code_temp <- data.frame (info_modalite [i ,]$ V1 , info_modalite [i ,]$ V2 , temp [[i ]][,' @code' ], temp [[i ]][,' Libelle' ],
105+ stringsAsFactors = FALSE )
106+ colnames(liste_code_temp ) <- c(" variable" , " lib_varible" , " modalite" , " lib_modalite" )
107+ } else {
108+ liste_code_temp <- data.frame (info_modalite [i ,]$ V1 , info_modalite [i ,]$ V2 ,temp [[i ]][' @code' ],temp [[i ]][' Libelle' ],stringsAsFactors = FALSE )
109+ colnames(liste_code_temp ) <- c(" variable" , " lib_varible" , " modalite" , " lib_modalite" )
110+ }
119111
120112 liste_code <- rbind(liste_code_temp , liste_code )
121113 }
122114 } else {
123- liste_code <- data.frame (info_modalite $ V1 , info_modalite $ V2 , temp [,' @code' ], temp [,' Libelle' ],
124- stringsAsFactors = FALSE )
115+ if (dim(as.data.frame(temp ))[1 ]> 1 ){
116+ liste_code <- data.frame (cbind(info_modalite ,temp [,' @code' ], temp [,' Libelle' ]),
117+ stringsAsFactors = FALSE )
118+ } else {
119+ liste_code <- data.frame (cbind(info_modalite ,temp [' @code' ], temp [' Libelle' ]),
120+ stringsAsFactors = FALSE )
121+ }
122+
125123 colnames(liste_code ) <- c(" variable" , " lib_varible" , " modalite" , " lib_modalite" )
126124 }
127125
128- cellule <- as.data.frame(res $ Cellule )
126+ cellule <- as.data.frame(res $ Cellule )
129127 var <- cellule $ Modalite
130128
131129 var_tot <- NULL
@@ -141,11 +139,19 @@ get_dataset <- function(jeton, jeu_donnees, croisement, modalite, nivgeo, codgeo
141139 donnees <- as.data.frame(donnees )
142140
143141 } else {
144- donnees <- do.call(" cbind" ,cellule )
145- donnees <- data.frame (donnees [,' Zone.@codgeo' ], donnees [,' Zone.@nivgeo' ],
146- donnees [,' Mesure.@code' ], donnees [,' Mesure.$' ],
147- donnees [,' Modalite.@code' ], donnees [,' Valeur' ], stringsAsFactors = FALSE )
148- colnames(donnees ) <- c(" codgeo" , " nivgeo" , " mesure" , " lib_mesure" , var [[2 ]][2 ], " valeur" )
142+ if (dim(as.data.frame(cellule ))[1 ]> 1 ){
143+ donnees <- do.call(" cbind" ,cellule )
144+ donnees <- data.frame (donnees [,' Zone.@codgeo' ], donnees [,' Zone.@nivgeo' ],
145+ donnees [,' Mesure.@code' ], donnees [,' Mesure.$' ],
146+ donnees [,' Modalite.@code' ], donnees [,' Valeur' ], stringsAsFactors = FALSE )
147+ colnames(donnees ) <- c(" codgeo" , " nivgeo" , " mesure" , " lib_mesure" , var [[2 ]][2 ], " valeur" )
148+ } else {
149+ var <- as.character(cellule [,' Modalite..variable' ])
150+ donnees <- data.frame (cellule [' Zone..codgeo' ], cellule [,' Zone..nivgeo' ],
151+ cellule [,' Mesure..code' ], cellule [,' Mesure..' ],
152+ cellule [,' Modalite..code' ], cellule [,' Valeur' ], stringsAsFactors = FALSE )
153+ colnames(donnees ) <- c(" codgeo" , " nivgeo" , " mesure" , " lib_mesure" , var , " valeur" )
154+ }
149155 }
150156
151157 if (! is.na(temporisation )){
0 commit comments