Skip to content

Commit 4a27989

Browse files
Faure Marie-EmmanuelleFaure Marie-Emmanuelle
authored andcommitted
Résolution issues 8 :
Erreur import variable d'une modalité
1 parent 117b594 commit 4a27989

File tree

1 file changed

+53
-47
lines changed

1 file changed

+53
-47
lines changed

R/get_dataset.R

Lines changed: 53 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -19,40 +19,34 @@
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\u00eate")){
67+
} else if (stringr::str_detect(res, "Aucune cellule ne correspond a la requ\u00eate")){
7668
print('Erreur - Param\u00e8tre(s) de la requ\u00eate 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\u00e9es locales non r\u00e9alis\u00e9e")
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\u00eates, 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\u00e8tre(s) de la requ\u00eate 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

Comments
 (0)