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 :

calcul variable en fonction de la valeur des autres


Sujet :

R

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut calcul variable en fonction de la valeur des autres
    Bonjour,
    Existe-t-il un moyen simple de calculer (ou modifier) une variable en fonction du contenu des autres variables ?
    Je souhaiterais faire quelque chose qui ressemblerait à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    library(dplyr)
    test<-data.frame(x=c(1,2,3),y=c(10,20,30))
    test <- test %>% mutate_if(x==1,y=7)
    mais ce code ne fonctionne pas.
    Le mutate_if ne fonctionne, apparemment, qu'avec des conditions (du genre "is_numeric") sur une variable existante qu'on souhaiterait modifier.
    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Formateur et consultant R
    Inscrit en
    Juin 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur et consultant R
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2020
    Messages : 36
    Points : 69
    Points
    69
    Par défaut
    Si vous cherchez à modifier la valeur des individus, je suppose que c'est plutôt ce code que vous cherchez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    library(dplyr)
    test<-data.frame(x=c(1,2,3), y=c(10,20,30))
    test <- test %>% 
        mutate(y = if_else(x == 1, 7, y))
    Et si vous souhaitez ré-encoder plusieurs valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    library(dplyr)
    test<-data.frame(x=c(1,2,3), y=c(10,20,30))
    test <- test %>% 
        mutate(y = case_when(
            x == 1 ~ 7,
            x == 2 ~ 12,
            TRUE ~ y)
         )
    Et si vous souhaitez ré-encoder encore plus de variables, je vous recommande plutôt de créer une nouvelle table de conversion et de faire une jointure entre la table originale et la table de conversion

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    library(dplyr)
    test<-data.frame(x=c(1,2,3),y=c(10,20,30))
    test <- test %>% mutate(y=ifelse(x==1,7,y))

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Citation Envoyé par statnmap Voir le message
    Si vous cherchez à modifier la valeur des individus, je suppose que c'est plutôt ce code que vous cherchez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    library(dplyr)
    test<-data.frame(x=c(1,2,3), y=c(10,20,30))
    test <- test %>% 
        mutate(y = if_else(x == 1, 7, y))
    Et si vous souhaitez ré-encoder plusieurs valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    library(dplyr)
    test<-data.frame(x=c(1,2,3), y=c(10,20,30))
    test <- test %>% 
        mutate(y = case_when(
            x == 1 ~ 7,
            x == 2 ~ 12,
            TRUE ~ y)
         )
    Et si vous souhaitez ré-encoder encore plus de variables, je vous recommande plutôt de créer une nouvelle table de conversion et de faire une jointure entre la table originale et la table de conversion
    Merci !

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

Discussions similaires

  1. [DATA] Créer une variable en fonction de la valeur d'autres observations
    Par stagebi dans le forum SAS Base
    Réponses: 8
    Dernier message: 05/02/2015, 10h41
  2. Réponses: 3
    Dernier message: 11/09/2014, 11h48
  3. Réponses: 13
    Dernier message: 07/11/2011, 15h41
  4. Count en fonction de la valeur des tables
    Par cal123 dans le forum Requêtes
    Réponses: 7
    Dernier message: 18/10/2010, 09h07
  5. update d'un champ en fonction des valeurs des autres
    Par jamesleouf dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 03/06/2008, 11h51

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