Les posteurs les plus actifs de la semaine
Nik
 
Aymeen
 


Array aide

Aller en bas

Array aide

Message par philippe777 le Sam 8 Fév 2014 - 12:42

Bonjour, j'ai ce recodage de variable que j'aimerais mettre en array car j'en n'ai plus de 100 à faire quelqu'un peut m'aider?
Sinon pour info, l'autre valeur que les variables initiales peuvent prendre est le point (.) donc données manquantes.

P.S. je ne suis pas l'inventeur de ces nom de variables :p


if Q3ashockeynever = 1 then Q3ashockey = 1;
if Q3ashockeyoncepermonthorless = 1 then Q3ashockey = 2;
if Q3ashockey23timespermonth = 1 then Q3ashockey = 3;
if Q3ashockeyonceperweek = 1 then Q3ashockey = 4;
if Q3ashockey23timesperweek = 1 then Q3ashockey = 5;
if Q3ashockey45timesperweek = 1 then Q3ashockey = 6;
if Q3ashockeyalmosteveryday = 1 then Q3ashockey = 7;

philippe777

Nombre de messages : 12
Age : 29
Localisation : Canada
Date d'inscription : 23/08/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Array aide

Message par niaboc le Sam 8 Fév 2014 - 14:40

Bonjour,

A l'aide d'une étape data tu peux faire un truc dans ce genre:

Code:
data ta_table;
    set ta_table
    array variables [liste de tes variables/ _ALL_ si toutes tes variables sont prises en compte / _numeric_ si toutes tes variables numériques sont prises en compte];
    do i=1 to dim(variables);
          if variables[i]=1 then Q3ashockey=i;
    end;
run;


Je n'ai pas testé le code, n'hésites pas si y'a un pb.

Niaboc
avatar
niaboc

Nombre de messages : 948
Age : 31
Localisation : Paris
Date d'inscription : 05/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Array aide

Message par philippe777 le Sam 8 Fév 2014 - 16:47

Ça fonctionne merci beaucoup. Il a juste fallu que j'enlève le numeric à la fin.... peut-êre a cause des points. Mais, juste pour info, je n'arive pas à comprendre comment cette syntaxe sait que les nouvelles valeurs seront de 1 à 7.... c'est juste pour mieux comprendre.

Donc, voici ce que ça me donne. Mais, étant donner que j'ai plus de 100 array à faire et que c'est toujours selon la même logique; je me dit qu'il y a peut-être un meilleur moyen.... Do same array ou je sais pas trop. Enfin, c'est déjà mieux. Merci.

array course Q3ajognever Q3ajogoncepermonthorless Q3ajog23timespermonth Q3ajogonceperweek
Q3ajog23timesperweek Q3ajog45timesperweek Q3ajogalmosteveryday;
do i = 1 to dim (course);
if course[i] = 1 then Q3ajog = i;
drop i;
end;

array golf Q3agolfnever Q3agolfoncepermonthorless Q3agolf23timespermonth Q3agolfonceperweek
Q3agolf23timesperweek Q3agolf45timesperweek Q3agolfalmosteveryday;
do i = 1 to dim (golf);
if golf[i] = 1 then Q3agolf = i;
drop i;
end;

array natation Q3aswimnever Q3aswimoncepermonthorless Q3aswim23timespermonth Q3aswimonceperweek
Q3aswim23timesperweek Q3aswim45timesperweek Q3aswimalmosteveryday;
do i = 1 to dim (natation);
if natation[i] = 1 then Q3aswim = i;
drop i;
end;


Merci encore!
Philippe.

philippe777

Nombre de messages : 12
Age : 29
Localisation : Canada
Date d'inscription : 23/08/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Array aide

Message par niaboc le Dim 9 Fév 2014 - 11:28

Le array te crée ton vecteur de variable.
la boucle peut se traduire par :

"pour la variable numéro 1 à la dernière variable de l'array faire;
    si la variable vaut 1 alors Q3a=le numéro de la variable dans l'array;
fin;
"

Si tu as beaucoup de cas à faire, tu peux automatiser ça à l'aide d'une macro fonction puisque toutes tes variables sont construites de la même façon (Q3a[nom_variable]oncepermonthorless).
avatar
niaboc

Nombre de messages : 948
Age : 31
Localisation : Paris
Date d'inscription : 05/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Array aide

Message par philippe777 le Dim 9 Fév 2014 - 11:44

Parfait, merci beaucoup pour ton aide!

philippe777

Nombre de messages : 12
Age : 29
Localisation : Canada
Date d'inscription : 23/08/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Array aide

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum