我是SAS的新手,我非常渴望学习它。我的问题是关于子集。我有2个数据集; a和b分别由两列a和b组成:
a b
3 4
5
6
data a;
set a;
run;
data b;
set b;
run;
data merged;
merge a b;
run;
proc print data=merged(firstobs= a[1] obs=a[1] keep= b);
run;
在这段代码中我得到了无效的转换类型错误,我无法弄清楚为什么我会收到此错误,因为当我这样写时:
proc print data=merged(firstobs= 3 obs= 3 keep= b);
run;
我得到结果为6。
我知道这看起来很简单,但我遇到了这个错误。如果你帮助我,我真的很感激。感谢
答案 0 :(得分:0)
您希望打印数据集b
中的行,该数据集的编号与数据集a
的第1行中a
的值相同。
您无法直接将值传递到proc中,但您可以从数据集中生成宏变量并将其传递给proc,例如。
data _null_;
set a(obs = 1);
call symput('ROW_NUMBER',a);
run;
proc print data = b(keep = b obs = &ROW_NUMBER firstobs = &ROW_NUMBER);
run;