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 :

Remplir une colonne à partir des valeurs d'une autre colonne


Sujet :

R

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 27
    Points : 15
    Points
    15
    Par défaut Remplir une colonne à partir des valeurs d'une autre colonne
    Bonjour,

    Je souhaite remplir la colonne A3 du tableau suivant avec une formule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Etablissement  A1 A2     A3
    1      Et.A      0  100    0
    2      Et.B      3  125    0
    3      Et.C      5  700    0
    Je veux que A3 = A2 / A1, seulement lorsque la valeur de A1 est différente de 0 (ce qui me permet d'éviter la division par 0). Lorsque la valeur A1 = 0, je veux simplement renvoyer la valeur "1" à la colonne A3.

    Pour résumer, je veux appliquer une fonction de la sorte :
    Si (A1 différent de 0) alors (A3 = A2 / A1) sinon (A3 = 1)

    J'ai tenté avec if, mais ça ne fonctionne pas.

    Quelqu'un aurait-il une solution ?

    Merci à vous pour votre aide.

    Cordialement,
    Guillaume

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Avec la fonction ifelse plutôt qu'avec l'instruction if.
    Bizarre que tu n'aies pas déjà trouvé la réponse dans d'autres discussions...
    Bon courage.
    Olivier

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Merci pour ta réponse Olivier.

    J'ai bien trouvé cette solution (avec ifelse), néanmoins, je dois faire une erreur de débutant... mais je n'arrive pas à remplir les colonnes.

    Mon code s'apparente au suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ifelse (tab$A1 != 0, tab$A3 == tab$A2 / tab$A1, tab$A3 == 1)
    Dans la console, les valeurs "TRUE" et "FALSE" sont renvoyées selon les cas mais la colonne A3 ne se remplit pas.
    J'ai tenté de changer d'opérateur logique (<- au lieu de ==) mais ce n'est pas plus fructueux.

  4. #4
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    == est un opérateur de comparaison. Pour une affectation c'est <-.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab$A3 <- ifelse(tab$A1 != 0, tab$A2 / tab$A1, 1)
    Bon courage.
    Olivier

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Olivier,

    J'avais essayé avec <- mais ça ne fonctionnait pas.
    Mon erreur venait du fait que je tentais de faire l'opération directement dans le ifelse, plutôt qu'en introduisant par :
    Merci beaucoup !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/03/2014, 13h40
  2. Réponses: 3
    Dernier message: 06/08/2012, 12h25
  3. [TP] Remplir un tableau à partir des données d'un autre tableau
    Par The future scientist dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 27/05/2007, 17h31
  4. Réponses: 1
    Dernier message: 23/05/2007, 11h49
  5. Comment ajouter des champs a partir des valeurs d'un autre champ ?
    Par zerkz dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 06/05/2007, 12h05

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