IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Variable numérique non nulle, non NA mais pas de valeur visible


Sujet :

R

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 21
    Points
    21
    Par défaut Variable numérique non nulle, non NA mais pas de valeur visible
    Salut tout le monde!

    Je suis face à un problème sur R que je n'arrive pas à résoudre. Actuellement je travaille via le package GEOquery et je cherche à extraire certaines informations dans les métadonnées.

    En particulier, je cherche le type de label du canal utilisé pour l'expérience (par exemple Cye3 ou Cye5). Jusque-là pas de vrai problème puisque j'arrive à obtenir cette entrée. Je vous mets ci-dessous un bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >library(GEOquery)
    > gse<-getGEO("GSE2253",GSEMatrix=TRUE,destdir=".")
    >gse<-gse[[1]]
    >gse$label_ch1[1]
    V2 
     
    Levels:  According to Affymetrix protocol (biotin)
    et c'est là que se trouve mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > is.na(gse$label_ch1[1])
       V2 
    FALSE 
    > is.null(gse$label_ch1[1])
    [1] FALSE
    Ce fichier GSE est un fichier texte, et dans la ligne qui correspond au label (!Sample_label_ch1) il n'y a pas de valeur rentrée. Du coup je suis bien embêtée puisque je travaille en fonction de cette valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(is.na(gse$label_ch1[1])){
        color<-"Non specified"
        } else {
        label<-gse$label_ch1[1]
        }
    Si rien n'est dit sur le canal, j'indique qu'il n'est pas spécifié, sinon je donne la valeur en question. Et dans le cas de ce fichier, eh bien je me retrouve avec du vide

    J'ai essayé de passer gse$label_ch1[1] avec as.character et de faire tourner le if avec un =="", mais ça ne fonctionne pas non plus.

    Ça serait super si quelqu'un avait une idée pour m'aider ^^

    Merci d'avance!

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,
    Si ce n'est ni NULL, ni NA, c'est peut-être une chaîne de caractères vide.
    Que renvoie la fonction nchar(gse$label_ch1[1]) ?
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 21
    Points
    21
    Par défaut
    Salut

    Merci pour ta réponse ^^. gse$label_ch1[1] est de type "numeric", du coup j'ai testé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    > as.character(gse$label_ch1[1])
    [1] ""
    > nchar(as.character(gse$label_ch1[1]))
    [1] 0
    Mais du coup ça fonctionne pour ce que je veux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(nchar(as.character(gse$label_ch1[1]))==0){
        color<-"Non specified"
        } else {
        label<-gse$label_ch1[1]
        }
    Dans ce cas là ça devrait fonctionner, alors qu'en laissant la variable en numeric la longueur n'était pas nulle et c'était une partie du problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > length(gse$label_ch1[1])
    [1] 1
    En tout cas merci beaucoup!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/01/2015, 13h15
  2. Arbre de jeu - jeux à somme nulle/non nulle
    Par bruce-willis dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 21/11/2008, 13h53
  3. Réponses: 3
    Dernier message: 14/05/2008, 18h31
  4. Réponses: 1
    Dernier message: 24/11/2006, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo