1. #1
    Candidat au Club
    Femme Profil pro
    biologiste
    Inscrit en
    janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : biologiste

    Informations forums :
    Inscription : janvier 2018
    Messages : 2
    Points : 3
    Points
    3

    Par défaut Remplacer simultanément plusieurs valeurs d'une colonne par d'autres valeurs

    Bonjour
    Je suis archi débutante sur r et sur l'informatique en général.
    Dans le cadre d'un exercice de "recodage", je dois remplacer dans une colonne "champ"contenant des valeurs numériques certaines valeurs par d'autres valeurs. La colonne "champ" contient plus de 1500 lignes
    Exemple :
    valeurs de "champ" : 1, 2, 3, 4, 5, 2, 3, 4, 1, 6...
    Je voudrais remplacer
    1) par exemple : toutes les valeurs 1 de la colonne par 3, les valeurs 2 par 4, les valeurs 3 par 1, etc.
    2) autre exemple : toutes les valeurs comprises entre 1 et 3 par 2

    J'ai essayer avec replace mais je ne peux remplacer qu'une valeur à la fois et je finis par remplacer des valeurs déjà remplacées

    Merci ++ pour votre aide (et bonne année).

    Val

  2. #2
    Membre à l'essai
    Femme Profil pro
    Agronome
    Inscrit en
    décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gers (Midi Pyrénées)

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

    Informations forums :
    Inscription : décembre 2017
    Messages : 12
    Points : 17
    Points
    17

    Par défaut

    Bonjour,

    Si la variable champ est catégorielle, ce qui me semble être le cas :

    1 - Pour le recodage, si tu n'as pas beaucoup de modalités, tu peux utiliser l'option label :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    champ <- factor (dataframe$champ, labels = c (3, 4,1 ...etc dans l'ordre d'apparition)
    2 - Pour regrouper des valeurs tu peux faire comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dataframe$champ <- factor(dataframe$champ) # convertir en variable catégorielle
    levels (dataframe$champ)[1:3] <- "2" # agréger les niveaux grâce à "levels"
    J'espère que ça aidera !
    Bonne année

  3. #3
    Membre habitué
    Homme Profil pro
    Data scientist
    Inscrit en
    février 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : février 2017
    Messages : 80
    Points : 149
    Points
    149

    Par défaut

    Bonjour, J'espère que ca répond à votre question
    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
     
    #création data pour exemple 
    data = data.frame( quanti = c(1:10) , quali = c(rep(1,3), rep(2,3), rep(3,4)))
     
    #la fonction cut pour créer des intervalles
     
    data$intervalle = cut(data$quanti , breaks = c(1,3,6,8,10), labels = c('intervalle1', "intervalle2", "intervalle3", "intervalle4") ,
                      include.lowest = T )
     
    #la fonction recodvar de la librairie doBy
     
    install.packages("doBy")
     
    library(doBy)
     
    data$quali1 = recodeVar(data$quali , c("1", "2", "3") , c('3','4','5')) #remplacer 1 par 3 et 2 par 4 ect ...

  4. #4
    Candidat au Club
    Femme Profil pro
    biologiste
    Inscrit en
    janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : biologiste

    Informations forums :
    Inscription : janvier 2018
    Messages : 2
    Points : 3
    Points
    3

    Par défaut Ca marche

    Merci++

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

Discussions similaires

  1. [Toutes versions] Copier la valeur d'une cellule par rapport à la valeur d'une autre.
    Par Depsi dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 22/12/2016, 12h14
  2. Réponses: 5
    Dernier message: 31/05/2015, 20h57
  3. Réponses: 2
    Dernier message: 13/06/2014, 14h12
  4. [XL-2003] Alimentation d'une listview par les différentes valeurs d'une colonne
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/12/2012, 09h52
  5. Réponses: 5
    Dernier message: 10/02/2011, 17h45

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