Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Table contingence avec SAS.
2 participants
Page 1 sur 1
Table contingence avec SAS.
Bonjour à tous,
Je dispose d'une base de donnée ayant ce format (c.PNG cijointe)
mon objectif est de compter la fréquence d'apparition de chaque variable X Y Z ...
dans les observations de la colonne var1 d'ou je veux avoir ceci comme résultat (cc.PNG cijointe)
je cherche la commande SAS permet de faire ça ? quelqu'un peux me aider SVP! merci beaucoup d'avance.
Je dispose d'une base de donnée ayant ce format (c.PNG cijointe)
mon objectif est de compter la fréquence d'apparition de chaque variable X Y Z ...
dans les observations de la colonne var1 d'ou je veux avoir ceci comme résultat (cc.PNG cijointe)
je cherche la commande SAS permet de faire ça ? quelqu'un peux me aider SVP! merci beaucoup d'avance.
- Fichiers joints
FMarwen- Nombre de messages : 226
Date d'inscription : 17/04/2013
Re: Table contingence avec SAS.
Bonjour,
si ce n'est pas trop tard, voici une solution possible. Dis-moi si ça te va :
Si tu l'as fait autrement, je suis preneur également!
Niaboc
si ce n'est pas trop tard, voici une solution possible. Dis-moi si ça te va :
- Code:
/*je me reconstruis ta table de données.
Comme il n'y avait toujours que 3 lettres possibles dans la colonne 'données' de ton exemple, je suis parti du principe
que c'était toujours le cas*/
data donnees;
input donnees $ 1-10;
cards;
X Y Z
A B C
Y Z X
B Y X
X R S
R A X
;
run;
/*macro de création du tableau disjonctif complet.
La table de sortie va porter le même nom de la table en entrée, mais avec un "2" à la fin*/
%macro Tab_disj_comp(table);
/*on crée une table temporaire avec 3 variable comprenant chacune une lettre des données*/
data temp;
set &table;
var1=substr(donnees,1,1);
var2=substr(donnees,3,1);
var3=substr(donnees,5,1);
run;
/*création de macro variables*/
data temp;
set temp;
call symput("var1"||trim(left(_N_)),var1);
call symput("var2"||trim(left(_N_)),var2);
call symput("var3"||trim(left(_N_)),var3);
run;
data &table.2;
set temp;
%do j=1 %to 3;
%do i=1 %to 6;
/*si la variale est égale à la macro variable alors on crée une variable portant le nom de la macro variable et qui vaut 1*/
if var&j="&&var&j&i" then do;
&&var&j&i=1;
end;
%end;
%end;
run;
/*on remet toutes les données manquantes à 0*/
data &table.2;
set &table.2;
array vect_var _numeric_;
do over vect_var;
if vect_var=. then vect_var=0;
end;
drop var1 var2 var3;
run;
/*on supprime la table temporaire*/
proc delete data=temp;
run;
%mend Tab_disj_comp;
%Tab_disj_comp(donnees);
Si tu l'as fait autrement, je suis preneur également!
Niaboc
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: Table contingence avec SAS.
Merci beaucoup.
FMarwen- Nombre de messages : 226
Date d'inscription : 17/04/2013
Sujets similaires
» table t de student
» Aggregation dans une table
» Insertion ligne dans table SAS
» Un format depuis une table ?
» observation de z sur la table de la loi normale
» Aggregation dans une table
» Insertion ligne dans table SAS
» Un format depuis une table ?
» observation de z sur la table de la loi normale
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum