全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1477 2
2014-02-08
楼主初学sas,还望大家指点啊啊啊啊
data a;
input id x@@;
cards;
11 10 31 30 41 40
;
data b;
input id y@@;
cards;
11 100 21 200 41 400
;
data whereab;
merge a b;
where id>30;
proc print data=whereab;
run;
data ifab;
merge a b;
if id>30;
proc print data=ifab;
run;


对where 执行结果是
obs id   x   y
  1  41 30 400
  2  41 40   .                       where 语句相当于先将a中的两个观测值31 30,41 40取出,将b中的41 400取出,然后合并, 最终合并结果中看到序号31没了,这个合并对序号进行了怎样的处理啊?????可否解答一二????????????

还有if合并中,应该是现将所有的观测值都放入PDV里,然后挑选,同问对序号进行了怎样的处理???
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-2-9 08:33:22
就是在merge句, 后面位置的要替换前面的值。 如果你把a和b换个位置就明白了。

data whereab2;
merge  b a;
where id>30;
proc print data=whereab2;
run;

Obs id y x
1 31 400 30
2 41 . 40
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-10 08:49:57
linusx 发表于 2014-2-9 08:33
就是在merge句, 后面位置的要替换前面的值。 如果你把a和b换个位置就明白了。

data whereab2;
非常感谢  这样一换位置就清楚啦
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群