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 :

Créer une variable avec condition


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Avril 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Créer une variable avec condition
    Bonjour,

    je souhaiterais créer une nouvelle variable avec des données "corrigées".

    Je pensais passer par un mutate / case when mais je bute dans la deuxième partie de l'expression après le tilde.
    Je ne sais que lui indiquer du texte et pas une formule.

    En fait je cherche à transposer en R quelque chose qui s'écrit comme ça en SAS

    Code SAS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fl_intcorr=fl_int;  /** pour la plupart des IRIS  **/
    if class7=1 and tx_rep_int<45.6 then fl_intcorr=0.506*(fl_pap+flne_x+FL_int);      
    if class7=2 and tx_rep_int<47 then fl_intcorr=0.52*(fl_pap+flne_x+FL_int);
    if class7=5 and tx_rep_int<11.3 then fl_intcorr=0.163*(fl_pap+flne_x+FL_int);
    if class7=7 and tx_rep_int<11.1 then fl_intcorr=0.161*(fl_pap+flne_x+FL_int);
    if class7=3 and tx_rep_int<33.5 then fl_intcorr=0.385*(fl_pap+flne_x+FL_int);
    if class7=4 and tx_rep_int<31.3 then fl_intcorr=0.363*(fl_pap+flne_x+FL_int);
    if class7=6 and tx_rep_int<34.8 then fl_intcorr=0.398*(fl_pap+flne_x+FL_int);
     
    fl_papcorr=fl_pap+FL_int-fl_intcorr; /* pour tous les IRIS **/


    moi je suis partie sur un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TEST3 <- TEST3 %>% mutate (FL_INT_CORR = 
                              case_when (
     CLASS7=1 &  TX_REP_INT < 45.6 ~ 0.506*(TEST3$FL_PAP+TEST3$FLNE.x+TEST3$FL_INT)
    ))
    Mais ce qui est écrit après le tilde ne marche pas

    une idée?

    merci

  2. #2
    Nouveau Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Avril 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    RE bonjour

    j'ai fini par faire fonctionner mes lignes mais mon problème est le suivant.

    En j'ai une variable avec des données collectées.
    Je veux créer une variable qui garde les données collectées,<ET qui modifient les lignes qui remplacent certaines conditions.
    Vace mutate case when je me retrouve avec des NA pour les données non modifiées.

    Je me suis dit que j'allais passer par which.
    J'ai créé une copie de ma variable en changeant le nom.
    J'écris mon which comme il faut puisque si je lui demande d'écrire tata il le fait. Mon problème c'est qu'il ne veut pas appliquer la formule telle que je l'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TEST4$FL_INT_CORR_5PTS[which(TEST4$CLASS7=="1" & TEST4$TX_REP_INT < 48.6)] <- 0.506*(TEST4$FLNE.x+TEST4$FL_PAP+TEST4$FL_INT)
    MESSAGE d'ERREUR Warning message:
    In TEST4$FL_INT_CORR_5PTS[which(TEST4$CLASS7 == "1" & TEST4$TX_REP_INT < :
    le nombre d'objets à remplacer n'est pas multiple de la taille du remplacement

    Le problème est dans la parenthèse de fin, car si j'écris 0,506 fois 10, ca fonctionne.
    Je veux qu'il récupère les données des variables indiquées pour chaque occurrence correspondant à la variable indiquée...
    Merci beaucoup de vos aides ou simples suggestions...

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/07/2019, 16h35
  2. Creer une variable avec foreach
    Par voyageurdumonde dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2011, 02h16
  3. Tracer une fonction avec conditions sur variable
    Par Leonpolou dans le forum MATLAB
    Réponses: 16
    Dernier message: 23/10/2009, 17h53
  4. Réponses: 2
    Dernier message: 04/07/2008, 13h56
  5. Réponses: 22
    Dernier message: 21/04/2008, 16h14

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