У меня есть вывод средства proc, в котором есть строки для каждой сводной статистики и столбцы для каждой переменной.Как я могу «повернуть» это так, чтобы оно было уникальным с помощью переменной «by»?
Мой обходной путь - взять выходные данные и объединить их с собой, используя команды WHERE и RENAME.Есть ли более простой способ сделать это?
proc means data=data1 n mean max min std noprint;
var var1 var2;
by month;
output out=SummaryStats;
run;
data SummaryStatsUnique;
merge SummaryStats (in=in1 keep=month var1 var2 _stat_ rename=(var1=var1_N var2=var2_N) where=(_stat_="N"))
SummaryStats (in=in2 keep=month var1 var2 _stat_ rename=(var1=var1_MEAN var2=var2_MEAN) where=(_stat_="MEAN"))
SummaryStats (in=in3 keep=month var1 var2 _stat_ rename=(var1=var1_MAX var2=var2_MAX) where=(_stat_="MAX"))
SummaryStats (in=in4 keep=month var1 var2 _stat_ rename=(var1=var1_MIN var2=var2_MIN) where=(_stat_="MIN"))
SummaryStats (in=in5 keep=month var1 var2 _stat_ rename=(var1=var1_STD var2=var2_STD) where=(_stat_="STD"))
;
by month;
if ^(first.month and last.month) then abort;
if ^(in1 and in2 and in3 and in4 and in5) then abort;
run;
Это должно взять таблицу в следующем формате:
MONTH _STAT_ Var1 Var2
2019.01 N 19 15
2019.01 MEAN 17.5 13
2019.01 MAX 21 16
2019.01 MIN 15 12
2019.01 STD 2.5 1.5
2019.02 ...
и вывести в следующем виде:
MONTH VAR1_N VAR2_N VAR1_MEAN VAR2_MEAN ...
2019.01 19 15 17.5 13
2019.02 ...