distribution sas

distribution - Apilamiento de datos en SAS



(2)

Usa proc transpose :

data pats; input PATIENT_ID AA BB CC DD EE; cards; 1 22 33 44 55 66 2 77 88 99 10 11 ; run; proc transpose data=pats out=pats_long; by patient_id; run;

Quiero apilar este tipo de mi conjunto de datos:

PATIENT_ID AA BB CC DD EE 1 22 33 44 55 66 2 77 88 99 10 11 ... .. .. .. .. ..

en lo siguiente:

PATIENT_ID GROUP VALUE 1 AA 22 1 BB 33 1 CC 44 1 DD 55 1 EE 66 2 AA 77 2 BB 88 2 CC 99 2 DD 10 2 EE 11 ... .. ..

para verificar la normalidad para todos los grupos ya que son dependientes / vinculados.

¿Cómo hacer este apilamiento en SAS? Gracias.


Como @itzy mostró, proc transpose se creó para este tipo de tareas de reestructuración de datos y es probablemente lo que querrá usar.

En aras de la integridad, le mostraré cómo puede lograr el mismo resultado con un enfoque más manual utilizando solo el paso de datos.

data short; input PATIENT_ID AA BB CC DD EE; cards; 1 22 33 44 55 66 2 77 88 99 10 11 ; run; data long(keep= PATIENT_ID GROUP VALUE); set short; array vars(*) AA--EE; do i=1 to dim(vars); GROUP=vname(vars(i)); VALUE=vars(i); output; end; run; proc print data=long noobs;run;