data Q1;
X=1;
run;
data Q2;
X=2;
run;
上の2つから下のデータセットを作る必要がありました
これはまず、Q1のオブザベーションを2倍にコピーして、
最初の値にだけ5を加える。
それをQ2に対しても行う。
両方を縦に結合して、Q1由来の場合はYの値を1、Q2由来の場合はYを2としたことで
作成できます。
僕はまず、ぱっと
data A0;
set Q1(in=in1 in=ina)
Q1(in=ina)
Q2(in=in1 in=inb)
Q2(in=inb)
;
if in1 then X=X+5;
if ina then Y=1;
if inb then Y=2;
run;
というコードが浮かびました。ただ、書いた瞬間に、あ~これは通らなさそうだなぁという感触が
ありました。
案の定、結果は
となりました。つまりin=in1が効いてないわけです。
ということはすなわち、in=は複数指定できないというわけです。
一応(in=in1 ina) とか(in=in1,ina)とか、記述法を思いつく限り試してみましたが、やっぱり無理でした。
in=が複数指定できるとコードの自由度爆発だから、いつかできるようにならないかな、、、。
まあ、結局、このケースの場合はinで複数指定できない分
indsname=オプションで代用することで実現できましたが、データセット名がカギになる
ケースしか使えんし、イマイチです。
data A1;
set Q1(in=in1)
Q1
Q2(in=in1)
Q2
indsname=NAME;
;
if in1 then X=X+5;
if NAME='WORK.Q1' then Y=1;
if NAME='WORK.Q2' then Y=2;
run;
0 件のコメント:
コメントを投稿