[問題] SAS資料轉換

看板Statistics作者 (小刀)時間16年前 (2009/06/08 12:14), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
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

06/08 12:31, , 1F
簡單的用if then 的條件句來設就好
06/08 12:31, 1F

06/08 12:32, , 2F
if x<=5 then a=1;else if 5<x<=10 then a=2;else a=3;
06/08 12:32, 2F

06/08 23:28, , 3F
這樣寫真累, a = ceil(x/5) 不就得了 = ="
06/08 23:28, 3F
文章代碼(AID): #1AB90YrB (Statistics)