现在,当我运行proc摘要时,输出数据集如下所示:
VAR1 Label Mean VAR2 Label Mean
但我想要以下格式:
VAR1 Label Mean
VAR2 Label Mean
如何从我的proc摘要声明中执行此操作:
proc summarydata = full MEAN STD MEDIAN MIN MAX MEDIAN Q1 Q3 P95 P90 P5 print;
var X;
run;
答案 0 :(得分:0)
如果您使用的是SAS 9.3或更高版本,并且正在使用ODS OUTPUT
,则可以使用STACKODSOUTPUT
选项执行此操作。
ods output summary=test ;
proc summary data=sashelp.class print mean p5 p95 stackodsoutput;
class sex;
var height weight;
run;
ods output close;
如果您通过PROC中的output
语句执行此操作,或者使用SAS 9.2或更早版本,则必须对数据进行后处理以对其进行转置。如果您使用/AUTONAME
,则可以相当轻松地完成此操作。
proc summary data=sashelp.class print mean p5 p95 stackodsoutput;
class sex;
var height weight;
output out=test mean= p5= p95= /autoname;
run;
data test2;
set test;
array vars height: weight:;
do _t = 1 to dim(vars);
varname = scan(vname(vars[_t]),1,'_'); *this would be more complex if you have _ in your variable names;
statistic = scan(vname(vars[_t]),-1,'_'); *this would be okay, though;
value = vars[_t];
output;
end;
keep sex varname statistic value;
run;
proc transpose data=test2 out=test3(drop=_name_);
by sex varname;
id statistic;
var value;
run;