如何处理SAS中的子集

时间:2015-05-27 19:53:41

标签: merge dataset sas analytics subset

我是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。

我知道这看起来很简单,但我遇到了这个错误。如果你帮助我,我真的很感激。感谢

1 个答案:

答案 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;