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 :

Recodage d'une variable


Sujet :

R

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 51
    Points : 49
    Points
    49
    Par défaut Recodage d'une variable
    Bonjour,

    Je voudrais recoder une variable "death" qui est en yes/no pour la mettre en 1 ou 0.

    Merci...

  2. #2
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    > a <- c("no", "yes", "no")
     
    > as.numeric(as.character(factor(a, levels=c("yes", "no"), labels=c(1,0))))
    [1] 0 1 0
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Bizarrement, quand je fais sapply, je vois que la variable "death" est déjà en numérique, alors que quand je fix la dataframe "epid" , les valeurs affichées pour la variable "death" sont bien "yes" ou "no".

    Merci de votre aide.

  4. #4
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Citation Envoyé par elvolcano Voir le message
    Bizarrement, quand je fais sapply, je vois que la variable "death" est déjà en numérique, alors que quand je fix la dataframe "epid" , les valeurs affichées pour la variable "death" sont bien "yes" ou "no".
    Ça peut paraître bizarre mais c'est en fait normal. Cette dualité, c'est le côté schizophrène des objets de classe factor ! Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    > b <- factor(c("no", "yes", "no"))
    > b
    [1] no  yes no 
    Levels: no yes
    > mode(b)
    [1] "numeric"
    > class(b)
    [1] "factor"
    C'est d'ailleurs un comportement qui est très dangereux lorsque les labels sont des chiffres... ils ne correspondent pas forcément aux valeurs numériques des levels correspondant. Ce qui peut changer totalement les résultats sans pour autant générer d'erreur.

    Pour reprendre mon exemple d'hier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    > a <- c("no", "yes", "no")
    
    > factor(a, levels=c("yes", "no"), labels=c(1,0))
    [1] 0 1 0
    Levels: 1 0
    
    > as.numeric(as.character(factor(a, levels=c("yes", "no"), labels=c(1,0))))
    [1] 0 1 0
    
    > as.numeric(factor(a, levels=c("yes", "no"), labels=c(1,0)))
    [1] 2 1 2
    as.character va permettre "d'extraire" les labels, sinon les valeurs numériques sont utilisées de façon implicite.
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    Nickel. merci.

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

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31
  3. Comparaison d'un registre 8 bits avec une variable 32 bits
    Par tupperware dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 15/10/2002, 10h25
  4. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 11h21
  5. Réponses: 4
    Dernier message: 05/06/2002, 14h35

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