Como obtener un PROC MEANS solo con variables con datos
Página 1 de 1. • Compartir •
Como obtener un PROC MEANS solo con variables con datos
Hola, tengo un problema que no sé cómo resolver. Tengo una tabla con 400 variables, de las cuales 350 no contienen datos (todos missing) y sólo 50 contienen datos. Quiero correr un PROC MEANS y que sólo analice las 50 variables con datos.
¿Cómo se hace? No sirve enumerar las variables con datos. Tengo que buscar una forma en la que el programa detecte las variables con datos y a esas les corra el PROC MEANS.
Gracias por la ayuda!
Federico.
¿Cómo se hace? No sirve enumerar las variables con datos. Tengo que buscar una forma en la que el programa detecte las variables con datos y a esas les corra el PROC MEANS.
Gracias por la ayuda!
Federico.
fedeursi- Jedi Youngling

- Cantidad de envíos: 2
Fecha de inscripción: 06/04/2009
Re: Como obtener un PROC MEANS solo con variables con datos
Hola Federico, aqui tienes una forma de resolver tu problema.
SASludos,
Alberto
- Código:
/*
1) Vamos a crear un dummy data set llamado file400 con
400 variables, 350 de las cuales no contienen
datos.
*/
data file400;
attrib vars1-vars400 format=best.;
array variables {*} vars351-vars400;
do i=1 to 100;
do j=1 to dim(variables);
variables{j}=ranuni(0)*100;
end;
output;
end;
drop i j;
run;
/*
2) Utilizando la tabla dictionary.columns
guardamos en una macro variable todas las
columnas/variables de File400
*/
Proc SQL noprint;
Select name into :mycolumns separated by " "
from dictionary.columns
where libname='WORK' and memname='FILE400';quit;
%put &mycolumns; /*en el log encontraras la lista de variables*/
/*
3) Usando ODS output guardemos la informacion de todas las
variables que no contienen datos en el data set Mvalues.
Aqui debes ser muy cuidadoso
ya que si tienes algun missing en alguna de las otras 50 variables,
estas seran contabilizadas aqui.
*/
ods output Missingvalues=mvalues;
ods listing close;
proc univariate data=file400 ;
var &mycolumns;
run;
ods listing;
/*
4) Ahora seleccionas todas las columnas de File400 que no esten
contenidas en Mvalues, asi solo estaras seleccionando aquellas
que no contengan missing values.
*/
Proc SQL noprint;
Select name into :myvars separated by " "
from dictionary.columns
where libname='WORK' and memname='FILE400'
and name not in (select varname from mvalues);quit;
%put &myvars;
/*Proc means con solo las variables que necesitas*/
proc means data=file400;
var &myvars;
run;
SASludos,
Alberto

Altons- Admin

- Cantidad de envíos: 3
Localización: Chester
Fecha de inscripción: 12/03/2009

Re: Como obtener un PROC MEANS solo con variables con datos
Muchas gracias Alberto!
Saludos,
Federico.
Saludos,
Federico.
fedeursi- Jedi Youngling

- Cantidad de envíos: 2
Fecha de inscripción: 06/04/2009
Permiso de este foro:
No puedes responder a temas en este foro.




