SAS-创建表

时间:2018-10-19 21:13:31

标签: sas

我有两个输出模型:

output out=m1 pred=p1;
output out=m2 pred=p2;

它们运行良好,并创建以下样本观察值:

M2的样本

Obs       p1

  1    0.98057
  2    0.71486
  3    0.91951
  4    0.93073
  5    0.93505
  6    0.98788
  7    0.94461
  8    0.99449
  9    0.93282
 10    0.88654

AND

M1的样本

Obs       p2

  1    0.97988
  2    0.70704
  3    0.91731
  4    0.92880
  5    0.93324
  6    0.98746
  7    0.94386
  8    0.99431
  9    0.93102
 10    0.88404

接下来,我尝试将这两个语句合并为一个表:

proc sql;
create table ptable as select *
from m1 as a left join m2 as b on a.cnt=b.cnt;
quit;

但是我收到此错误: 错误:在用相关名称A标识的表/视图中找不到列cnt。 错误:在用相关名称A标识的表/视图中找不到列cnt。 错误:在用关联名称B标识的表/视图中找不到列cnt。 错误:在以关联名称B标识的表/视图中找不到cnt列。

那么如何将p1和p2放入SAS的表中?

下面是用于生成p1和p2的代码,其中DATA =源

/*initial model*/
proc hplogistic data=DATA;
model value(event='1')=X1-X20;
output out=m1 pred=p1;
run;

/*new model*/
proc hplogistic data=data;
model value(event='1')=X1-X20;
output out=m2 pred=p2;
run;

2 个答案:

答案 0 :(得分:0)

这是在没有<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>语句的情况下执行合并 的情况。这些表将逐行连接。

例如

by

没有BY的合并在 I 通常执行的数据处理中是不典型的。

答案 1 :(得分:0)

这是贯穿整个过程的答案:

/*initial model*/
proc hplogistic data=DATA;
model value(event='1')=X1-X20;
output out=m1 pred=p1 copyvars=(cnt readmit);
run;

/*new model*/
proc hplogistic data=data;
model value(event='1')=X1-X20;
output out=m2 pred=p2 copyvar=cnt;
run;

cnt必须包含在输出中才能加入表中。