作者chris1 (小刀)
看板Statistics
标题[问题] SAS资料转换
时间Mon Jun 8 12:14:25 2009
data d1;
input x y z;
cards;
1 6 8
2 4 11
3 8 12
6 10 15
11 12 15
1 11 15
;
proc print;
run;
上面的资料x y z 变数值都在1~15之间
我想要转换 x y z 的值 到 a b c
当x y z 的值在1~5之间 则 a b c 的值为1 在6~10之间 值为2 在11~15之间 值为3
我自己是这样写的
data d2;
set d1;
array b{3} x y z;
array s{3} a b c;
do i=1 to 3;
j=b{i};
if j<=5 then s{j}=1
else if 6<=j<=10 then s{j}=2
else s{j}=3;
end;
但是都不成功,请问一下应该要怎麽写才能转换呢
我想可能是j的范围不能这样设定吧,但我不知道该怎麽设定
还是我的函数也写错了?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.13.225.213
1F:→ tew:简单的用if then 的条件句来设就好 06/08 12:31
2F:推 tew:if x<=5 then a=1;else if 5<x<=10 then a=2;else a=3; 06/08 12:32
3F:推 bugle:这样写真累, a = ceil(x/5) 不就得了 = =" 06/08 23:28