看板 Statistics 關於我們 聯絡資訊
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
tew:簡單的用if then 的條件句來設就好 06/08 12:31
tew:if x<=5 then a=1;else if 5<x<=10 then a=2;else a=3; 06/08 12:32
bugle:這樣寫真累, a = ceil(x/5) 不就得了 = =" 06/08 23:28