楼主: 是风啊
26261 26

[学习分享] if和where在SAS中的区别 [推广有奖]

学写了,不错

使用道具

22
坦小可 发表于 2016-5-4 15:25:31 来自手机 |只看作者 |坛友微信交流群
是风啊 发表于 2013-10-20 20:29
刚才无意中看到一个帖子,说道在SAS中if和where的区别,看后受益颇多啊,所以在此“借帖献佛”啦,哈、、、 ...
受益良多啊

使用道具

23
fantasy100306 发表于 2016-12-2 14:17:08 |只看作者 |坛友微信交流群
感谢楼主,解释的非常清楚!!

使用道具

24
vesmilingcat 发表于 2017-8-17 14:05:18 |只看作者 |坛友微信交流群
barbararan 发表于 2014-2-8 15:43
楼主这里一个问题,
data a;
input id x@@;
单用merge没有by的话,是按行号连接的,对于a b表里相同的变量,是后一个值覆盖前面的值,因此
Obs id x y
1 41 30 400
是先从a里取出符合where条件两行,再将b的第一行与a的第一行合并,并用b的id值覆盖a中id的值;

Obs id x y
2 41 40 .
是b没有第二行,所以合并后y为缺省值;

如果用merge by的话,需要先按by的变量排序。

使用道具

25
sppector 发表于 2017-12-31 16:47:39 |只看作者 |坛友微信交流群
谢谢分享

使用道具

26
today米虫 发表于 2018-1-8 13:39:51 |只看作者 |坛友微信交流群
受教了

使用道具

27
marakesh 发表于 2018-5-10 09:36:22 |只看作者 |坛友微信交流群
barbararan 发表于 2014-2-8 15:43
楼主这里一个问题,
data a;
input id x@@;
where语句现将A中的31 30;41 40取出。将B中的41 400;取出。
然后merge过程中。先写入第一条a的obs 31 30,和第一条b的obs 41 400,因为merge顺序b在a后面,所以41把31覆盖了。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 02:21