c*********9 发帖数: 46 | 1 我想做以下这个事情
DATA A里存着不同combinations对应的proportion。
Obs VA VB VC prop
1 1 1 1 0.84963
2 1 1 2 0.70089
3 1 1 3 0.99824
4 1 2 1 0.59399
5 1 2 2 0.21603
6 1 2 3 0.69277
7 1 3 1 0.42979
8 1 3 2 0.31692
9 1 3 3 0.49794
10 2 1 1 0.66567
11 2 1 2 0.19319
。。。。。
然后我把每种combination对应的proportion存成一个macro variable, 比如说
prop111,prop112..etc.
接下来我想在下面这个data step上用这些proportion到Data B(也有VA,VB,VC)。
我知道下面的程序有问题,因为&i, &j没有被specified,我希望他们能够跟着do loop
里的i和j变,可能吗?怎么实现呢?
谢谢!
DATA test;
SET B;
JUNKRAN=RANUNI(1);
DO I=1 TO 3;
DO J=1 TO 3;
IF VA=I AND VB=J THEN DO;
IF JUNKRAN<=&&PROP&I.&J.1/100 THEN final=1;
ELSE IF JUNKRAN<=(&&PCT&I.&J.2+&&PCT&I.&J.1)/100 THEN final=2;
ELSE final=3;
END;
END;
END;
RUN; |
k*******a 发帖数: 772 | 2 没必要这么复杂把,直接把proportion信息的那个data merge到B (by va vb vc) 不就
直接可以用了?
也不需要i, j什么的 |
g****8 发帖数: 2828 | 3 楼主是需要那个macro做特殊的用途吗?
我也同意楼上的说法,你搞得太复杂了。 |
c*********9 发帖数: 46 | 4 我用merge做了。。
但是只是想知道这种复杂的方法可不可行。。是不是要写把data step写在一个macro里
? |
p*******i 发帖数: 1181 | 5 要实现&i &j的翻译必须套在一个macro里面的 |