楼主: barbararan
1527 2

SAS中WHERE和if的问题,求解答 [推广有奖]

  • 0关注
  • 0粉丝

高中生

32%

还不是VIP/贵宾

-

威望
0
论坛币
750 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
283 点
帖子
22
精华
0
在线时间
33 小时
注册时间
2009-12-8
最后登录
2016-6-3

楼主
barbararan 发表于 2014-2-8 15:48:04 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
楼主初学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里,然后挑选,同问对序号进行了怎样的处理???
二维码

扫码加我 拉你入群

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

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

关键词:Where HERE 求解答 whe Input where

沙发
linusx 发表于 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
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

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

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 00:49