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

SAS Base Discussion :

Comment dire à une variable de prendre la valeur de sa valeur?


Sujet :

SAS Base

  1. #1
    Candidat au Club
    Femme Profil pro
    Data analyst
    Inscrit en
    Avril 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data analyst
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Comment dire à une variable de prendre la valeur de sa valeur?
    Bonjour,

    Je cherche depuis 2 jours, je suis sûre qu'il y a une façon simple de résoudre ce problème sans hardcoder mais ça m'échappe. Voici mon dataset en pièce jointe.

    Les valeurs de la variable IMPUTATION_GAUCHE représente actuellement la variable dans laquelle elle devrait prendre la valeur finale. Ce n'est pas simple à expliquer dans une phrase mais si je vous donne un exemple, vous allez vite comprendre.
    Ligne 1, IMPUTATION_GAUCHE = "MODE". Ca veut donc dire qu'au final, je voudrais remplacer cette valeur "MODE" pour la valeur de la variable MODE, donc par "1". Pour la ligne 8, ça sera plutôt la valeur de la variable P1 qui viendra populer IMPUTATION_GAUCHE. Il doit bien y avoir une fonction qui fait ça, non?

    Merci beaucoup de votre aide.
    Images attachées Images attachées  

  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.
    Il y a à mon avis au moins deux solutions : soit réorganiser les données avec une proc Transpose (BY id imputation_gauche, VAR mean--p5) et filtrer WHERE _NAME_ = imputation_gauche ; soit passer par un array et une petite boucle de l'étape DATA.
    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
    DATA work.lucie ;
      INPUT mean mode min imputation_gauche $ ;
    DATALINES ;
    1.095 1 1 MODE
    50.217 56 -1 MODE
    27.5 -1 -1 MEAN
    ;
    RUN ;
     
    DATA work.lucie ;
      SET work.lucie ;
      ARRAY valeurs_possibles mean--min ;
      DO OVER valeurs_possibles ;
        IF UPCASE(VNAME(valeurs_possibles)) = UPCASE(imputation_gauche) THEN
    	       valeur_remplacement = valeurs_possibles ;
      END ;
    RUN ;
    Bon courage.
    Olivier

  3. #3
    Candidat au Club
    Femme Profil pro
    Data analyst
    Inscrit en
    Avril 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data analyst
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Olivier,

    Tes talents de programmeur n'ont d'égal que ta rapidité d'esprit.

    Merci mille fois!

    Lucie

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/04/2015, 14h09
  2. Comment afficher le nom d'une variable et non sa valeur?
    Par philocratia dans le forum Général Python
    Réponses: 2
    Dernier message: 15/05/2014, 12h05
  3. Réponses: 1
    Dernier message: 04/02/2010, 11h45
  4. Réponses: 8
    Dernier message: 22/09/2009, 21h00
  5. Réponses: 4
    Dernier message: 27/07/2006, 16h47

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