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 :

Difficultés avec la fonction Case_When sur R


Sujet :

R

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Février 2014
    Messages : 14
    Par défaut Difficultés avec la fonction Case_When sur R
    Bonjour,
    Passant de SAS à R, je rencontre quelques difficultés dans le cadre de la création d'une nouvelle variable à partir de plusieurs conditions sur deux variables. Le programme fonctionne mais le résultat ne correspond à ce que je souhaite. Il me semble que R n'a pris en compte la double condition. Dois-je rajouter une parenthèse ou autre signe pour lui faire comprendre qu'il doit prendre les conditions sur les deux variables.
    Voici mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SISAL_BDD_VF$Destseg=case_when (SISAL_BDD_VF$`Nature logement`=="Résidence sociale"|SISAL_BDD_VF$`Nature logement`=="Autres logements foyers") & SISAL_BDD_VF$`Type Bénéficiaire`=="Personnes âgées" ~"LfAge",
                                      SISAL_BDD_VF$`Nature logement`=="Résidence sociale"|SISAL_BDD_VF$`Nature logement`=="Autres logements foyers") & SISAL_BDD_VF$`Type Bénéficiaire`=="Jeunes" ~"LfJeu",
                                      SISAL_BDD_VF$`Nature logement`=="Résidence sociale"|SISAL_BDD_VF$`Nature logement`=="Autres logements foyers") & SISAL_BDD_VF$`Type Bénéficiaire`=="Personnes handicapées" ~"LfHan",
                                      SISAL_BDD_VF$`Nature logement`=="Résidence sociale"|SISAL_BDD_VF$`Nature logement`=="Autres logements foyers")& SISAL_BDD_VF$`Type Bénéficiaire`=="Publics issus de FTM" ~ "LfFTM",
                                      SISAL_BDD_VF$`Nature logement`=="Résidence d'accueil"|SISAL_BDD_VF$`Nature logement`=="Pensions de famille (maisons relais)") & SISAL_BDD_VF$`Type Bénéficiaire`=="Publics maison relais ou res.d'accueil" ~"Mr",
                                       SISAL_BDD_VF$`Nature logement`=="Résidence sociale"|SISAL_BDD_VF$`Nature logement`=="Autres logements foyers" & SISAL_BDD_VF$`Type Bénéficiaire`=="Autres publics spécifiques"|SISAL_BDD_VF$`Type Bénéficiaire`=="Ménages" ~"LfAut",
                                       SISAL_BDD_VF$`Nature logement`=="Hébergement"|SISAL_BDD_VF$`Nature logement`=="RHVS") & `Type Bénéficiaire`=="Autres publics spécifiques"|SISAL_BDD_VF$`Type Bénéficiaire`=="Jeunes"|SISAL_BDD_VF$`Type Bénéficiaire`=="Demandeurs d'asile"|SISAL_BDD_VF$`Type Bénéficiaire`=="Jeunes"|SISAL_BDD_VF$`Type Bénéficiaire`=="Ménages" ~"He",
                                       SISAL_BDD_VF$`Nature logement`=="Logements ordinaires"& SISAL_BDD_VF$`Type Bénéficiaire`=="Etudiants" ~"LoEtu",
                                       SISAL_BDD_VF$`Nature logement`=="Logements ordinaires"& SISAL_BDD_VF$`Type Bénéficiaire`=="Ménages" ~"Lofam",
    TRUE ~ "Loaut")
    Merci beaucoup

  2. #2
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut case_when
    Bonjour,

    Vérifiez votre copié-collé, vous avez deux parenthèses ouvrantes et 8 fermantes, ce qui doit générer une erreur.

    Pas de problème particulier pour les doubles conditions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    > df <- iris
    > df$type = dplyr::case_when(df$Sepal.Length >= 4.5 & df$Sepal.Width < 3.5  ~ 1,
    +                            df$Sepal.Length >= 4.5 & df$Sepal.Width >= 3.5 ~ 2,                           
    +                            TRUE                                           ~ 0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    > head(df,10)
       Sepal.Length Sepal.Width Petal.Length Petal.Width Species type
    1           5.1         3.5          1.4         0.2  setosa    2
    2           4.9         3.0          1.4         0.2  setosa    1
    3           4.7         3.2          1.3         0.2  setosa    1
    4           4.6         3.1          1.5         0.2  setosa    1
    5           5.0         3.6          1.4         0.2  setosa    2
    6           5.4         3.9          1.7         0.4  setosa    2
    7           4.6         3.4          1.4         0.3  setosa    1
    8           5.0         3.4          1.5         0.2  setosa    1
    9           4.4         2.9          1.4         0.2  setosa    0
    10          4.9         3.1          1.5         0.1  setosa    1
    Cordialement,

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/08/2008, 18h58
  2. Difficulté avec la fonction OU
    Par bolide7 dans le forum Excel
    Réponses: 2
    Dernier message: 14/07/2008, 21h06
  3. php5: difficulté avec la fonction header
    Par koueletbak dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2006, 19h44
  4. erreur avec la fonction putfile() sur connexion FTP
    Par stefane1981 dans le forum C++
    Réponses: 2
    Dernier message: 23/09/2005, 09h13
  5. pb avec la fonction boolean sur eclipse
    Par mcay dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/05/2004, 09h37

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