楼主: goubuli2011
26081 16

[问答] merge data1(in=in1) data2(in=in2); in 是什么意思? [推广有奖]

  • 0关注
  • 0粉丝

学前班

60%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
76 点
帖子
3
精华
0
在线时间
0 小时
注册时间
2011-3-16
最后登录
2011-3-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data data3;
merge data1(in=in1) data2(in=in2);
by x1;
/*数据集必须先按变量x1排序*/
if in1 and in2;
/*变量x1取当前值的观测在data1data2中都存在*/
run;

in代表什么?数据集内的数吗?是专用的符号?可是数据中没有in这个变量,请赐教,谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:Merge 是什么意思 Data 数据集 Run SAS 为什么?

回帖推荐

myc_sas 发表于5楼  查看完整内容

举个例子: data1有如下数据 x1 x2 10 1000 20 2000 30 3000 data2的数据是: x1 x3 10 100 15 150 20 200 你的程序执行结果就是 x1 x2 x3 10 1000 100 20 2000 200 这个if in1 and in2相当于SQL里面的inner join,取by的那个变量在两个data set中有相同值的行。 如果只是if in1则相当于left join,如果只是if in2等同于right join,等等……

本帖被以下文库推荐

沙发
goubuli2011 发表于 2011-3-16 09:57:09 |只看作者 |坛友微信交流群
请问有高手知道吗,谢谢啦!sas帮助也找不到答案。。

使用道具

藤椅
priss111 发表于 2011-3-16 10:32:47 |只看作者 |坛友微信交流群
是否是: in1.data1; in2.data2

in1 & in2表示2个逻辑库?

使用道具

板凳
hssnow 发表于 2011-3-16 12:18:20 |只看作者 |坛友微信交流群
用数据集选项 in= 指定一个变量,可以用来指示该观测是否来自该数据集,是的话为1,否则为0。
楼主其实可以再搜一下,有问过的相关问题
My Blog: http:/hssnow.name/
宁静致远

使用道具

报纸
myc_sas 发表于 2011-3-16 16:37:55 |只看作者 |坛友微信交流群
举个例子:
data1有如下数据
x1 x2
10 1000
20 2000
30 3000

data2的数据是:
x1 x3
10 100
15 150
20 200

你的程序执行结果就是
x1    x2     x3
10 1000 100
20 2000 200

这个if in1 and in2相当于SQL里面的inner join,取by的那个变量在两个data set中有相同值的行。
如果只是if in1则相当于left join,如果只是if in2等同于right join,等等……
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

地板
goubuli2011 发表于 2011-3-17 09:56:29 |只看作者 |坛友微信交流群
非常感谢各位前辈解答,谢谢!

使用道具

7
soporaeternus 发表于 2011-3-17 10:14:02 |只看作者 |坛友微信交流群
myc_sas 发表于 2011-3-16 16:37
举个例子:
data1有如下数据
x1 x2
10 1000
20 2000
30 3000

data2的数据是:
x1 x3
10 100
15 150
20 200

你的程序执行结果就是
x1    x2     x3
10 1000 100
20 2000 200

这个if in1 and in2相当于SQL里面的inner join,取by的那个变量在两个data set中有相同值的行。
如果只是if in1则相当于left join,如果只是if in2等同于right join,等等……
data步的merge和proc sql的join还是有本质区别的......
Let them be hard, but never unjust

使用道具

8
stickybaby 发表于 2011-3-17 11:36:49 |只看作者 |坛友微信交流群
7# soporaeternus

求教~~

使用道具

9
myc_sas 发表于 2011-3-17 16:02:38 |只看作者 |坛友微信交流群
soporaeternus 发表于 2011-3-17 10:14
data步的merge和proc sql的join还是有本质区别的......
哦,对对,不好意思误导人了……
merge是逐行读取,如果两边by变量都有重复值,结果和join就不同了,对吧?

使用道具

10
xiaoshu01 发表于 2011-3-19 09:50:50 |只看作者 |坛友微信交流群
比较同意4楼的观点,用数据集选项的in=指定的变量不能直接进入到结果数据集,而只能用于数据步程序中
做给时间看

使用道具

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

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

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

GMT+8, 2024-4-26 22:24