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 :

Aide sur une fonction recodant plusieurs variables


Sujet :

R

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Aide sur une fonction recodant plusieurs variables
    J'ai un fichier csv dans lequel j'ai plusieurs variables codées "O", "N".
    Je souhaite toutes les recoder en des vecteurs numériques 1, 0.

    En partant d'un morceau de code de pitipoisson, j'ai développé le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Convertir_O_N_to_1_0 <- function (TabName,VarIn,VarOut) {
        factor(VarIn, levels=c("O", "N"), labels=c(1,0))
        VarOut <- as.numeric(as.character(factor(VarIn, levels=c("O", "N"), labels=c(1,0))))
        TabName <- cbind(TabName,VarOut)
        return(VarOut)
    }
     
      Convertir_O_N_to_1_0(ConsoAcr,ConsoAcr$V1,TestV1)

    Même si return(VarOut) contient bien les nouvelles valeurs sous forme de vecteur, je n'arrive pas à la mettre dans mon dataframe ConsoAcr !!

    Quelqu'un à une idée ?
    Merci...

  2. #2
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Bonjour,
    avez-vous essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConsoAcr$TestV1 <- Convertir_O_N_to_1_0(ConsoAcr,ConsoAcr$V1,ConsoAcr$TestV1)
    ?

    Bonne journée

    PS: désolée pour votre post précédent, je n'ai pas eu le temps de le reprendre. Peut-être ce week end...

  3. #3
    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,

    Tu te compliques la vie inutilement, je pense.
    Pas forcément besoin d'une fonction pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    df <- data.frame(x=c("O", "N", "N", "O", "O"), y=rnorm(5))
    df
      x          y
    1 O  0.2175608
    2 N -1.5043594
    3 N  0.7936336
    4 O -1.1511279
    5 O  0.2028331
     
    df$z <- ifelse(df$x == "O", 1, 0)
     
      x          y z
    1 O  0.2175608 1
    2 N -1.5043594 0
    3 N  0.7936336 0
    4 O -1.1511279 1
    5 O  0.2028331 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

  4. #4
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Pas forcément besoin d'une fonction pour ça
    Re-bonjour,
    effectivement, j'ai écrit avant de réfléchir

    Merci Ced pour la rectification

  5. #5
    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,

    la solution de Ced est effectivement bien plus directe (et sans doute plus efficace).

    La première prend réellement du sens s'il y a plus de deux modalités à recoder.
    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


    )><))))°>

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

Discussions similaires

  1. Aide sur une fonction sous Visual C++ .NET
    Par mog83 dans le forum C++
    Réponses: 0
    Dernier message: 22/04/2008, 15h17
  2. Réponses: 2
    Dernier message: 23/11/2007, 11h33
  3. Réponses: 16
    Dernier message: 14/05/2007, 16h33
  4. Aide sur une fonction / pbm de manipulation de caractère
    Par captainamerica75 dans le forum Access
    Réponses: 3
    Dernier message: 16/02/2006, 11h54
  5. Besoin d'aide sur une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2005, 17h40

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