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 :

automatiser création variables avec fonction case_when


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2023
    Messages : 2
    Points : 1
    Points
    1
    Par défaut automatiser création variables avec fonction case_when
    Bonjour,

    Je cherche à automatiser la création d'une nouvelle variable par année. Le code ci-dessous aboutit à la création de la variable pour l'année 2011 ; je voudrais appliquer ce même code pour créer une variable etat2012 à partir des variables rang2012 et poste2012, même chose pour 2013 etc. Quelle solution serait la plus simple ? Merci beaucoup et bonne soirée

    d <- d |> mutate(
    etat2011 = case_when(
    rang2011 == "R1" & poste2011 == "assistant" ~ "etat1",
    rang2011 == "R2" & poste2011 == "assistant" ~ "etat2",
    rang2011 == "R3" & poste2011 == "assistant" ~ "etat3",
    rang2011 == "R1" & poste2011 == "associé" ~ "etat4",
    rang2011 == "R2" & poste2011 == "associé" ~ "etat5",
    rang2011 == "R3" & poste2011 == "associé" ~ "etat6",
    rang2011 == "R1" & poste2011 == "full" ~ "etat7",
    rang2011 == "R2" & poste2011 == "full" ~ "etat8",
    rang2011 == "R1" & poste2011 == "full" ~ "etat9",
    TRUE ~ "Autre")
    )

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    bonjour à tester, il doit avoir peut-être plus simple

    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
    18
    19
     
    ajout_etat <- function(annee){
      d %>% mutate(
       "etat{annee}" := case_when(
          !! sym(str_c("rang",annee)) == "R1" & !! sym(str_c("poste",annee)) == "assistant" ~ "etat1",
          !! sym(str_c("rang",annee)) == "R2" & !! sym(str_c("poste",annee)) == "assistant" ~ "etat2",
          !! sym(str_c("rang",annee)) == "R3" & !! sym(str_c("poste",annee)) == "assistant" ~ "etat3",
          !! sym(str_c("rang",annee)) == "R1" & !! sym(str_c("poste",annee)) == "associé" ~ "etat4",
          !! sym(str_c("rang",annee)) == "R2" & !! sym(str_c("poste",annee)) == "associé" ~ "etat5",
          !! sym(str_c("rang",annee)) == "R3" & !! sym(str_c("poste",annee)) == "associé" ~ "etat6",
          !! sym(str_c("rang",annee)) == "R1" & !! sym(str_c("poste",annee)) == "full" ~ "etat7",
          !! sym(str_c("rang",annee)) == "R2" & !! sym(str_c("poste",annee)) == "full" ~ "etat8",
          !! sym(str_c("rang",annee)) == "R1" & !! sym(str_c("poste",annee)) == "full" ~ "etat9",
          TRUE ~ "Autre")
      ) %>% select(last_col())
     
    }
     
    res <- d %>% bind_cols(map(2011:2013,ajout_etat))

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2023
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Tout fonctionne !
    Merci beaucoup, cela fonctionne très bien ! Ne me reste plus qu'à comprendre comment vous avez fait ;o)) Merci encore

Discussions similaires

  1. Modifier variable avec fonction JS
    Par sky88 dans le forum Langage
    Réponses: 6
    Dernier message: 09/09/2015, 23h38
  2. [XL-2013] Création tableau avec fonction PMT
    Par daddygraffiti dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2015, 15h54
  3. [XL-2007] Recherche a 2 variables avec fonction index et Equiv
    Par Accord59 dans le forum Excel
    Réponses: 21
    Dernier message: 21/02/2014, 16h21
  4. partage variable avec fonction
    Par m1chto dans le forum Langage
    Réponses: 2
    Dernier message: 01/12/2009, 15h31
  5. création variable avec condition
    Par nawal59 dans le forum SAS Base
    Réponses: 2
    Dernier message: 06/08/2008, 07h34

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