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 :

boucle Ifelse ne fonctionne pas


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Par défaut boucle Ifelse ne fonctionne pas
    Bonjour à tous,

    Une question facile pour le forum (car elle ne l'est pas pour moi ;o) )

    J'ai une colonne avec des valeurs numériques de 0 à 150 (Maillage).
    Je voudrais dans une autre colonne (classes) les regrouper en classes.
    Voici mon code :

    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
    if (essai$Maillage < 70){
      essai$classes <- "inf_70"
     
    } else if (essai$Maillage == 70){
      essai$classes <- "egal_70"
     
    } else if (essai$Maillage == 80){
      essai$classes <- "egal_80"
     
    } else if (81 <= essai$Maillage & essai$Maillage <= 99){
      essai$classes <- "81_99"
     
    } else if (essai$Maillage == 100){
      essai$classes <- "egal_100"
     
    }else {
      essai$classes <- "autre"
    }
    Malheureusement, il me code tout en "autre" avec ce Warning
    Warning messages:
    1: In if (essai$Maillage < 70) { :
    the condition has length > 1 and only the first element will be used
    2: In if (essai$Maillage == 70) { :
    the condition has length > 1 and only the first element will be used
    3: In if (essai$Maillage == 80) { :
    the condition has length > 1 and only the first element will be used
    4: In if (81 <= essai$Maillage & essai$Maillage <= 99) { :
    the condition has length > 1 and only the first element will be used
    5: In if (essai$Maillage == 100) { :
    the condition has length > 1 and only the first element will be used
    Qu'en pensez-vous ? il doit y avoir une subtilité qui m'échappe !
    Merci
    A +

    Mumu

  2. #2
    Membre expérimenté
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    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 : 211
    Par défaut cut
    Bonjour,

    Vous pouvez utilisé la fonction cut de R ca va te faciliter la vie.
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    x = data.frame(var = c(1:10))
     
    x$var = cut(x$var , breaks = c(1,3,8,10), include.lowest = TRUE ) 
     
    #breaks est les bornes de tes intervalles, include.lowest est pour inclure la borne inférieur dans l'intervalle

  3. #3
    Membre confirmé
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Par défaut
    Bonjour,

    Merci marou1991, cette fonction répond à ma demande !
    J'ai du l'adapter pour avoir mes valeurs uniques mais on y arrive bien !
    A +

    Mumu

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

Discussions similaires

  1. [MySQL] boucle qui ne fonctionne pas dans autocompletion
    Par groskanel dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 25/08/2010, 14h56
  2. Boucle qui ne fonctionne pas
    Par Msieurduss dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/04/2009, 16h00
  3. Range.Offset(1) dans une boucle qui ne fonctionne pas
    Par Pierre.g dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/08/2008, 11h58
  4. boucle While ne fonctionne pas ?
    Par beegees dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2006, 20h19
  5. [MySQL] Boucle qui ne fonctionne pas bien que la 1ère fois
    Par R.L. dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/05/2006, 21h59

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