software military inglaterra estadistica check andalucia airline sas

military - SQL y matrices de SQL SAS



sas software (2)

Esta es una pregunta de SAS novato. Tengo un conjunto de datos con las variables numéricas v1-v120, V y una variable categórica Z (con decir tres valores posibles). Para cada posible valor de Z, me gustaría obtener otro conjunto de variables w1-w120, donde w {i} = suma (v {i}} / V, donde la suma es una suma sobre un valor dado de Z. Por lo tanto Estoy buscando matrices 3 * 120 en este caso. Puedo hacerlo en pasos de datos, pero me gustaría hacerlo mediante Proc SQL o Proc MEANS, ya que el número de variables categóricas en el conjunto de datos real es moderadamente grande. Gracias de antemano .


Aquí hay una solución usando proc sql. Probablemente también podría hacer algo similar con proc significa usar un conjunto de datos de salida y una declaración ''por''.

data t1; input z v1 v2 v3; datalines; 1 2 3 4 2 3 4 5 3 4 5 6 1 7 8 9 2 4 7 9 3 2 2 2 ; run; %macro listForSQL(varstem1, varstem2, numvars); %local numWithCommas; %let numWithCommas = %eval(&numvars - 1); %local i; %do i = 1 %to &numWithCommas; mean(&varstem1.&i) as &varstem2.&i, %end; mean(&varstem1.&numvars) as &varstem2.&numvars %mend listForSQL; proc sql; create table t2 as select z, %listForSQL(v, z, 3) from t1 group by z ; quit;


Es fácil hacer esto con proc means . Usando el conjunto de datos t1 de la respuesta de Louisa Gray:

proc means data=t1 nway noprint; class z; var v1-v3; output out=t3 mean=w1-w3; run;

Esto crea una tabla de resultados que coinciden con los resultados de SQL.