Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*1 : Import des données*/
- proc contents data=source.demography short;
- proc contents data=source.physical_exam short;
- proc contents data=source.vital_signs short;
- proc contents data=source.treatment_assignment short;
- run;
- /*------------------------------------------------------2.1----------------------------------------------------------*/
- /* 2.1.1 : Age Today*/
- DATA source.DM;
- TITLE "Demography w/ current age";
- SET source.demography;
- ATTRIB AGE_TODAY LABEL="Age today" LENGTH=3;
- AGE_TODAY=year(today()) - birthdtyy;
- PROC PRINT DATA=source.dm LABEL NOOBS;
- run;
- /* 2.1.2 : Fusion DM et Treatment_assignment*/
- DATA source.DM;
- TITLE "Demography merged w/ treatment";
- MERGE source.dm source.treatment_assignment;
- BY USUBJID;
- RUN;
- PROC PRINT DATA=source.DM LABEL NOOBS;
- run;
- /* 2.1.3 : Age moyen max et min pour chaque groupe de traitement*/
- PROC MEANS DATA=source.DM VAR MAX MIN NONOBS
- MAXDEC=2;
- VAR age;
- CLASS trtcd;
- ;
- title "Age statistics by treatment grp";
- /*-----------------------------------------------2.2------------------------------------------------------------*/
- /*2.2.1*/
- DATA source.TAILLE;
- SET SOURCE.PHYSICAL_EXAM;
- WHERE HGT is not null;
- KEEP USUBJID HGT;
- RUN;
- /*On récupere le poids et l'id de la visite correspondante*/
- DATA source.POIDS;
- SET SOURCE.PHYSICAL_EXAM;
- WHERE WGT is not null;
- KEEP USUBJID WGT WGTU VISID;
- RUN;
- /*Récupération des dates des visites*/
- DATA source.DATE;
- SET SOURCE.DATE_OF_VISIT;
- KEEP USUBJID VISID VISDT;
- RUN;
- /*Tri par USUBJID pour la fusion des 3 tables*/
- PROC SORT DATA=source.TAILLE;
- BY USUBJID;
- RUN;
- PROC SORT DATA=source.POIDS;
- BY USUBJID VISID;
- RUN;
- PROC SORT DATA=source.DATE;
- BY USUBJID VISID;
- RUN;
- /*Fusion du poids et de la date de visite*/
- DATA source.imc;
- MERGE source.POIDS (IN=mark1) source.DATE (IN=mark2);
- BY USUBJID VISID;
- if mark1 and mark2 then output;
- RUN;
- /*Fusion de la taille et de la table imc*/
- DATA source.imc;
- MERGE source.TAILLE source.imc;
- BY USUBJID;
- RUN;
- /*Tri pour avoir la dernière visite en premier*/
- PROC SORT DATA=source.imc;
- BY USUBJID DESCENDING VISDT;
- RUN;
- /*Supprime les doublons pour garder seulement la dernière visite de chaque individu*/
- PROC SORT DATA=source.imc nodupkey;
- BY USUBJID;
- RUN;
- /* creer un nouveau dataset ou il y a l'imc calcule*/
- DATA source.CalculImc;
- SET source.imc;
- ATTRIB imc
- LABEL="IMC"
- LENGTH=3
- ;
- imc= (WGT/((HGT/100)*(HGT/100)));
- RUN;
- /*2.2.2: Merge PE */
- DATA source.Physicalvisit;
- MERGE source.physical_exam (IN=mark1) source.DATE (IN=mark2);
- BY USUBJID VISID;
- If mark1 and mark2 then output;
- RUN;
- /*fusion de physicalvisit avec dm pour avoir le dataset PE*/
- DATA source.PE;
- MERGE source.physicalvisit source.dm;
- BY USUBJID;
- RUN;
- PROC PRINT DATA=source.PE;
- /*-----------------------------------------------2.3------------------------------------------------------------*/
- /*2.3.1 : Tension et 2.3.2 : Diagnostic*/
- DATA source.Tension;
- TITLE "Tension";
- SET source.vital_signs;
- ATTRIB tension label="Diagnostique tension" LENGTH=$40;
- IF SYS > 180 OR DIA > 110 THEN
- tension = "Hypertension sévère";
- ELSE IF SYS > 159 OR DIA > 99 THEN
- tension = "Hypertension modérée";
- ELSE IF SYS > 139 OR DIA > 89 THEN
- tension = "Hypertension légère";
- ELSE IF SYS > 129 OR DIA > 84 THEN
- tension = "Tension normale élevée";
- ELSE IF SYS > 119 OR DIA > 79 THEN
- tension = "Tension normale";
- ELSE tension = "Tension optimale";
- PROC PRINT DATA=source.Tension LABEL NOOBS;
- run;
- /*2.3.3 : Fusion avec Date_of_visit*/
- DATA source.VS;
- TITLE "Tension merged w/ Date_of_visit";
- MERGE source.Tension source.Date_of_visit;
- BY USUBJID;
- IF SYS=. OR DIA =. THEN tension = "Non calculé";
- run;
- PROC PRINT DATA=source.Tension LABEL NOOBS;
- run;
- /*2.3.4 : Fusion VS et PE*/
- PROC SORT data=source.PE;
- BY USUBJID;
- run;
- PROC SORT data=source.VS;
- BY USUBJID;
- run;
- DATA source.VS_PE;
- TITLE "VS merged w/ PE";
- MERGE source.VS source.PE;
- BY USUBJID;
- run;
- PROC PRINT DATA=source.VS_PE LABEL NOOBS;
- run;
- /*2.3.5 : Fréquence paramètres*/
- PROC SORT DATA=source.vs_pe OUT = source.vs_pe;
- BY TRTCD;
- run;
- PROC FREQ DATA=source.vs_pe ORDER=freq;
- TABLES SYS*TEMP / LIST NOCUM OUT=source.sys_avg_by_trtmntgrp;
- BY TRTCD;
- run;
- /*2.3.6 : Égalité moyenne tension systolique */
- PROC ANOVA DATA=source.vs_pe;
- CLASS TRTCD;
- MODEL SYS = TRTCD;
- run;
- PROC FREQ DATA=source.vs_pe;
- TABLE SYS / chisq;
- run;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement