b******s 发帖数: 345 | 1 variable是tooth1-tooth20(value是0或1,0没有蛀虫,1有蛀虫),用one way的proc
freq可以得到每颗牙的蛀虫数目。
我的问题是:但怎样对tooth1-tooth20用SAS排序呢,看那颗牙蛀虫最多,哪颗牙蛀虫
最少?
谢谢! |
D*G 发帖数: 471 | 2 我只能想到最笨的办法,就是把每个牙的freq table输出到 (output)到dataset. 然
后再合并再做data step操作。
【在 b******s 的大作中提到】 : variable是tooth1-tooth20(value是0或1,0没有蛀虫,1有蛀虫),用one way的proc : freq可以得到每颗牙的蛀虫数目。 : 我的问题是:但怎样对tooth1-tooth20用SAS排序呢,看那颗牙蛀虫最多,哪颗牙蛀虫 : 最少? : 谢谢!
|
l****u 发帖数: 529 | 3 proc summary(or proc means);
var tooth1-tooth20;
output out=one(keep=t1-t20) sum= t1-t20;
run;
data one;
set one;
array tooth[20] _numeric_;
do i=1 to 20;
if tooth[i]=max(of tooth[*]) then nmmax=vname(tooth[i]);
if tooth[i]=min(of tooth[*]) then nmmin=vname(tooth[i]);
end;
run;
I did not check it. Please do it |
w**y 发帖数: 42 | 4 可以用proc sort dec or ascend 吧? |
b******s 发帖数: 345 | 5 谢谢楼上几位! luanyu的方法很好!
【在 b******s 的大作中提到】 : variable是tooth1-tooth20(value是0或1,0没有蛀虫,1有蛀虫),用one way的proc : freq可以得到每颗牙的蛀虫数目。 : 我的问题是:但怎样对tooth1-tooth20用SAS排序呢,看那颗牙蛀虫最多,哪颗牙蛀虫 : 最少? : 谢谢!
|
A****1 发帖数: 33 | 6 The following way can give the rank of tooth1-tooth20.
proc means data=one noprint;
var t1-t3;
output out=two(keep=t1-t3) sum= t1-t3;
run;
proc transpose data=two out=three prefix=count;
var t1-t3;
run;
proc rank data=three out=four ties=low;
var count1;
ranks count_r;
run;
【在 b******s 的大作中提到】 : variable是tooth1-tooth20(value是0或1,0没有蛀虫,1有蛀虫),用one way的proc : freq可以得到每颗牙的蛀虫数目。 : 我的问题是:但怎样对tooth1-tooth20用SAS排序呢,看那颗牙蛀虫最多,哪颗牙蛀虫 : 最少? : 谢谢!
|
b******s 发帖数: 345 | 7 谢谢!版上牛人很多!
【在 A****1 的大作中提到】 : The following way can give the rank of tooth1-tooth20. : proc means data=one noprint; : var t1-t3; : output out=two(keep=t1-t3) sum= t1-t3; : run; : proc transpose data=two out=three prefix=count; : var t1-t3; : run; : proc rank data=three out=four ties=low; : var count1;
|