priss111 发表于 2014-7-2 16:25 
对exp5_1转置,
如果中间没有其他语句控制enzyme、lever的取值,
那么得到的enzyme、lever的取值只有1个 ...
1.
楼主需要真正理解TRANSPOSE是如何工作的,如果用“by GENDER enzyme subj;”,由于数据集中每个GENDER+enzyme+sub的组合只有3条记录,所以转置后是不能得到6个新变量的。
2.
如果意图是对enzyme*level交叉的y值进行转置,那结果enzyme就不能做为BY语句中的变量。
而且转置前enzyme的取值可以为1或2;转置后只有一行(enzyme只能取一个值),何来“enzyme也与exp5_1同”之说?
3.
楼主可以看一下是不是这个意思:
data exp5_1;
set exp5_1;
enz_lev=cats(enzyme,lever);
run;
proc sort data=exp5_1;
by GENDER subj;
run;
proc transpose data=exp5_1 out=y(rename=(_11 = y1 _12 =y2 _13=y3 _21=y4 _22=y5 _23=y6) drop=_name_);
by GENDER subj;
var y;
id enz_lev;
run;