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 de PLUSIEURS variables


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 11
    Par défaut Recodage de PLUSIEURS variables
    Bonjour
    Je souhaite recoder plusieurs variables prises par R par défaut comme "numéric" alors que ce sont des "factors" de 0 ou de 1.
    Je le fais pour une seule variable avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    > data$variable1<-as.factor(data$variable1)
    et ça marche! Mais j'en ai 50 à faire comme ça!
    J'essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >data[c(1:50)]<-as.factor(data[c(1:50)]
    mais ça marche pas: R mets un "+" en invite de commande et je sais pas quoi en faire..
    Alors avec le temps que j'ai déjà perdu à chercher comment faire pour la beauté du geste j'y serais déjà arrivé à l'heure qu'il est mais c'est une question de principe !
    Je suis preneur de toute solution, alternative, explication!
    Merci d'avance

  2. #2
    Membre expérimenté Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Par défaut
    R met un plus car il manque une parenthèse à la fin de votre ligne de code donc il attend la fermeture;
    Afin de transformer plusieurs colonnes vous pouvez utiliser la fonction lapply(df, as.factor) qui appliquera la fonction as.factor à chaque colonne de df;

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 11
    Par défaut
    Merci pour cette réponse
    Effectivement pour la parenthèse: le truc c'est que quand je la mets et complète ma ligne, R recode ces variables en chr!....incompréhensible à mon niveau
    Sinon lapply fonctionne très bien c'est vrai pour toutes les variables / colonnes du data.frame mais je souhaite ne l'appliquer qu'à certaines (et plusieurs) d’entre elles...

  4. #4
    Membre expérimenté Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Par défaut
    je pensais que vous auriez appliquer votre methode de sélection des colonnes....
    voila un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    test <- data.frame( a = c(0,1,1,0), b = c(0, 1, 0, 1), c = c(4, 3, 2, 1))
    test[1:2] <- lapply(test[c("a","b")], as.factor)  # j'ai mis deux façons différentes d'appeler les mm col pour l'exemple

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 11
    Par défaut
    Top!!
    J'ai utilisé la 2ieme qui me semblait plus simple pour appliquer la fonction à de nombreuses variables qui se suivaient (genre de la 15ième à la 42ième)
    pour cette fonction lapply je comprends pas le "l" pour lenght je sais mais bon..en même temps je m'y suis mis hier à R donc bon!!
    D'ailleurs je me demande aussi pourquoi avec ma première syntaxe ca marchait pas et en plus ca me recoder les variables en chr...bref!!!
    Encore merci

  6. #6
    Membre expérimenté Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Par défaut
    il y a beaucoup de bonnes ressources en ligne pour bien comprendre R et de nombreux moocs aussi! il y a un mm un package appelé swirl qui permet d'apprendre à se servir de R!

    sinon pour lapply, je ne suis pas certain d'avoir compris votre question, mais si c'est pourquoi cela s'appelle 'l'apply c'est pour list-apply, un data.frame est un cas particulier de list (qui est un objet de R) (cf. help des fonctions apply)

    pour comprendre pourquoi votre première syntaxe ne fonctionne pas vous pouvez regarder comment sont codées les fonctions as.factor et factor en les écrivant dans la console R ou plus simplement lire l'help de la fonction ?as.factor ou sur internet https://stat.ethz.ch/R-manual/R-deve...ml/factor.html.

    simplement la fonction attend un vecteur et vous lui fournissez un objet qui n'est pas un vecteur donc elle transforme cette object en vecteur via as.character (d'ou les character) et transforme ensuite en facteur ce vecteur

Discussions similaires

  1. Affecter la même valeur à plusieurs variables
    Par K20 dans le forum Langage
    Réponses: 7
    Dernier message: 03/01/2006, 23h54
  2. Plusieurs variables dans Dim et Case??
    Par samlepiratepaddy dans le forum Access
    Réponses: 2
    Dernier message: 02/10/2005, 18h04
  3. Envoyer plusieur variable a un programme
    Par scaleo dans le forum Langage
    Réponses: 9
    Dernier message: 06/09/2005, 11h09
  4. envoyer plusieurs variables dans l'url?
    Par brgui dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h18
  5. Réponses: 5
    Dernier message: 28/04/2004, 16h06

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