我处理的一批数据,需要计算每个变量的均数和标准差,并且生成在一个数据表里面。我自己编写了一个程序,把mean和std放在一个means语句里,他们都被排在一行了,所以我就用了两次然后再把纵向合并,虽然实现了,但是觉得means用了两次,感觉繁了点,不知道是不是可以简化一下的?变量有几万个吧,样本量是975。下面是我的程序:
proc means data=mydata.chr2 mean noprint;
output out=m1 mean=;
run;
proc means data=mydata.chr2 std noprint;
output out=m2 std=;
run;
data m;
set m1 m2;
run;
proc TRANSPOSE data=m out=mean_std;/**数据转置***/
var _all_;
run;
data mean_std;
set mean_std;
rename COL1=mean col2=std;
run;
data mean_std;
set mean_std;
if mean=0 or mean=975 then delete;
run;
proc export data=mean_std
outfile="E:\data\chr2\chr2_mean_std.txt";
run;