ORDER=DATA
将告诉SAS根据它遇到这些值时对类变量进行排序。因此,如果1
的值早于0
的值,则它将首先进行比较。
例如:
data for_ttest;
call streaminit(7);
do group = 0 to 1;
do _n_ = 1 to 50;
score = rand('NORMAL',1,0.5)+group;
output;
end;
end;
run;
proc sort data=for_ttest;
by descending group;
run;
proc ttest data=for_ttest order=data;
class group;
var score;
run;
没有ORDER=DATA
,它表现为你所看到的,但有了它,1是第一组。您可以将ORDER=FORMATTED
与格式组合。
proc format;
value groupf
1="Group 1 (Value=1)"
0="Group 2 (Value=0)"
;
quit;
proc ttest data=for_ttest order=formatted;
class group;
format group groupf.;
var score;
run;
在PROC FORMAT
标签是不相关的,除了他们必须按照字母顺序排序。不幸的是,PRELOADFMT
选项不PROC TTEST
,所以你不能使用NOTSORTED
把戏PROC FORMAT
允许这种情况即使在原始值的工作(虽然你可以使用非打印字符乱用排序顺序,如果你真的想要)。
来源
2017-10-11 20:10:29
Joe