NA et requête SQL et

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Nathalie Roche
Messages : 11
Enregistré le : 21 Aoû 2008, 08:10

NA et requête SQL et

Messagepar Nathalie Roche » 07 Nov 2017, 11:17

Bonjour,
Je fais une série de requêtes SQL sous shiny, et j'aimerai remplacer les "NA" qui apparaissent dans ma requête finale par des vides "".

J'ai essayé en passant par is.na, mais j'ai un message d'erreur:
> DMod1[DMod1$DFMOD == "NA", ] <- " "
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format

Si vous avez une idée, je suis preneuse!

Merci!

Nathalie

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: NA et requête SQL et

Messagepar François Bonnot » 07 Nov 2017, 12:28

Bonjour,
Je ne comprends pas, parce que le code proposé n'utilise pas is.na() comme annoncé.
François

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: NA et requête SQL et

Messagepar Pierre-Yves Berrard » 07 Nov 2017, 12:33

Je ne vois pas non plus de requête SQL.
PY

Nathalie Roche
Messages : 11
Enregistré le : 21 Aoû 2008, 08:10

Re: NA et requête SQL et

Messagepar Nathalie Roche » 07 Nov 2017, 13:18

Oui, au temps pour moi, j'ai copié une autre tentative.

Voici le code avec le is.na:

> DMod1[is.na(DMod1$DFMOD)]<-""
Error in `[<-.data.frame`(`*tmp*`, is.na(DMod1$DFMOD), value = "") :
duplicate subscripts for columns

Nathalie Roche
Messages : 11
Enregistré le : 21 Aoû 2008, 08:10

Re: NA et requête SQL et

Messagepar Nathalie Roche » 07 Nov 2017, 13:20

Ma requête SQL est un peu longue, c'est pour ça que je ne l'ai pas affichée.

Je l'ai commencé comme cela:

DMod1<-sqlQuery(channel,"
SELECT ...;")

la requête fonctionne sans problème et me sort bien la vue voulue

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: NA et requête SQL et

Messagepar Serge Rapenne » 07 Nov 2017, 13:31

Bonjour,

Tu dois avoir des colonnes au format POSIXct dans le data.frame retourné par la requete SQL, hors, il n'est pas possible de remplacer une valeur POSIct par "".

Code : Tout sélectionner

as.POSIXct("")
Error in as.POSIXlt.character(x, tz, ...) :
  character string is not in a standard unambiguous format


Tu peux forcer cela en transformant la(les) colonne(s) au format POSIXct en chaine de caractères mais dans ce cas tu va perdre les possibilités liées à ce format.

Serge

Nathalie Roche
Messages : 11
Enregistré le : 21 Aoû 2008, 08:10

Re: NA et requête SQL et

Messagepar Nathalie Roche » 07 Nov 2017, 13:41

Ah d'accord...

mince, je ne connaissais pas ce problème de format...

Merci!

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: NA et requête SQL et

Messagepar Logez Maxime » 07 Nov 2017, 13:53

Bonjour,

le problème peut provenir aussi du fait que ta condition tu l'as faite sur une colonne DFMOD et que tu l'appliques à tout l'objet DMod1.
Par exemple :

Code : Tout sélectionner

tab <- structure(list(x = c(1.84430485936019, NA, 1.54810489951295,
NA, -0.133826753805566, -0.298218963315384, NA, NA, 1.784601815864,
0.546257504303151), y = c(-1.26499186269472, -0.240425075555358,
-0.137621584957566, -0.394792294307582, 0.595553214418797, -1.10517670592789,
0.46243613877152, 0.193303940202187, 1.30355225925588, 1.80178429227864
)), .Names = c("x", "y"), row.names = c(NA, -10L), class = "data.frame")

tab[is.na(tab)]
[1] NA NA NA NA
tab[is.na(tab)] <- ""

# Alors que :
tab[is.na(tab$x)]
Error in `[.data.frame`(tab, is.na(tab$x)) : undefined columns selected

# et que :
tab[is.na(tab$x)] <- ""
Error in `[<-.data.frame`(`*tmp*`, is.na(tab$x), value = "") :
  duplicate subscripts for columns

Si ce sont les valeurs de DFMOD que tu veux remplacer alors tu peux faire :

Code : Tout sélectionner

DMod1[is.na(DMod1$DFMOD), "DFMOD]<-""
# ou
DMod1$DFMOD[is.na(DMod1$DFMOD)] <- ""
Cordialement,
Maxime


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité