楼主: playmore
20249 22

如何一次性合并多张表? [推广有奖]

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16309 个
通用积分
7.1997
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1331 小时
注册时间
2007-1-11
最后登录
2023-12-15

初级学术勋章 初级热心勋章 中级热心勋章

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我现在有一张主表,还有n个附表
需要做的是在sql步中用主表left join多个附表,这样就需要n个sql步,
不知道SAS中的sql步可不可以一次连接多个表格
或者用merge可以完成?我试了下merge好像是全外连接?
我只想左外连接,只要主表中有的条目,和Excel中的vlookup差不多
谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:一次性 left join vlookup lookup Merge 如何

回帖推荐

playmore 发表于4楼  查看完整内容

自己折腾明白了

本帖被以下文库推荐

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛
沙发
Imasasor 发表于 2012-8-2 10:10:43 |只看作者 |坛友微信交流群
这个很简单,第一步:先将每个表按顺序并排放好。
           第二步,将各个表合并起来
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

使用道具

藤椅
playmore 发表于 2012-8-2 10:12:01 |只看作者 |坛友微信交流群
对了,另外还有我的主表包含了很多不同的by变量,如不同的股票,
而附表中则没有by股票,而仅仅是按时间序列来的某种指标
因此用merge好像不行
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

板凳
playmore 发表于 2012-8-2 10:22:42 |只看作者 |坛友微信交流群
自己折腾明白了
  1. proc sql noprint;
  2.   create table want as
  3.     select a.*,b.var1,c.var2
  4.     from a,b,c
  5.     where a.date=b.date=c.date;
  6. quit;
复制代码
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

报纸
lynette_89 发表于 2012-8-2 23:07:03 |只看作者 |坛友微信交流群
playmore 发表于 2012-8-2 10:22
自己折腾明白了
哈?好吧,自己想粗来了呢,偶进来学习学习的说

使用道具

地板
wodemac 发表于 2012-8-3 11:36:30 |只看作者 |坛友微信交流群
playmore 发表于 2012-8-2 10:22
自己折腾明白了
这样连接只能连接左表和右表都有的部分 ,不能以左表为基准!!

使用道具

7
playmore 发表于 2012-8-6 12:31:28 |只看作者 |坛友微信交流群
wodemac 发表于 2012-8-3 11:36
这样连接只能连接左表和右表都有的部分 ,不能以左表为基准!!
嗯,您说的是
但是我试过用left join不能同时连接超过两个表格
只能用我说的办法来了,还好我B和C两个表包含了足够的信息,不会出现A有但B和C没有的情形
你有什么好办法吗?
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

8
wodemac 发表于 2012-8-6 12:48:52 |只看作者 |坛友微信交流群
playmore 发表于 2012-8-6 12:31
嗯,您说的是
但是我试过用left join不能同时连接超过两个表格
只能用我说的办法来了,还好我B和C两个表 ...
我还没有什么好的方法,left join只能一个一个左联,不然用merge是可以连接多个,但是最好一对一或是一对多的,不要多对多连接是可以的。

使用道具

9
chenys625 发表于 2012-8-14 14:45:19 |只看作者 |坛友微信交流群
merg 中可以用rename将你要by的变量命名成一样的,也可以用in=这个来控制只保留所需表中的观测,还可以用merge a1-a100这种也是可以的。 希望能够解决你的问题

使用道具

10
firefox29 发表于 2014-1-18 21:32:15 |只看作者 |坛友微信交流群
playmore 发表于 2012-8-2 10:22
自己折腾明白了
from a left join b 可以搭配on ,如on a.id=b.id ,效果是相同id合并成一条观测,任一方没有该id则赋予空值;
与之相区别,
若使用from a,b,c
where a.id=b.id and b.id=c.id
where语句事先对观测进行了筛选,不满足条件的观测已经被删去;

So, 问题就是,我现在不希望删去观测,仅仅希望按相同id合并三个以上的表,也就是如题希望能合并多个表但不对观测进行条件筛选。不知道如何做到?

使用道具

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

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

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

GMT+8, 2024-5-8 01:10