请选择 进入手机版 | 继续访问电脑版
楼主: 番茄奏鸣曲
9091 12

[有偿编程] SAS merge合并两个数据集问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

60%

还不是VIP/贵宾

-

威望
0
论坛币
1808 个
通用积分
30.4222
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
6004 点
帖子
92
精华
0
在线时间
150 小时
注册时间
2012-2-20
最后登录
2022-4-28

27论坛币
2.JPG

1.JPG


LIBNAME nps "E:\Data";
run;

PROC IMPORT OUT= WORK.data1 DATAFILE= "E:\Data\data.xlsx"
            DBMS=xlsx REPLACE;
     SHEET="data";
     GETNAMES=YES;
RUN;

现在我通过导入语言往sas里面导入了两个数据集
第一个数据集本来就是sas格式的
第二个是excel格式的,
然后想把两个数据集合并merge一下。
但是里面的year 和month是一样的,合并的时候我应该怎么去打命令?
啊,还有其实...其中一个数据应该是在nps library里面的,但是我不知道怎么合并两个不同library的数据,
所以我把nps里面的数据拷贝粘贴在work下面了.....

求高人指导!
谢谢谢谢~
关键词:Merge 数据集 Library libname replace
王贴贴123456 在职认证  发表于 2017-6-5 11:01:58 |显示全部楼层 |坛友微信交流群
  1. proc sort data=work.data1;
  2. by year month;
  3. run;
  4. proc sort data=work.data2;
  5. by year month;
  6. run;
  7. data conm;
  8. merge work.data1 work.data2;
  9. by year month ;
  10. run;
复制代码

使用道具

foocares 发表于 2017-6-5 11:11:09 |显示全部楼层 |坛友微信交流群
proc sql;
select * from data1, data2
       where data1.Year = data2.Year
       and
       data1.Month=data2.Month;
quit;
这里要注意的是,你确定数据集里光靠year和month来判断合并就够了吗,虽然看到的这一页没有这个问题,但如果后头不同的公园有相同的年和月记录呢?



使用道具

foocares 发表于 2017-6-5 11:11
proc sql;
select * from data1, data2
       where data1.Year = data2.Year
啊!这个我没有想到....如果是这样的话我应该怎么去处理呢?请指点...

使用道具

王贴贴123456 发表于 2017-6-5 22:13
您好,不知道为嘛这个程序跑不了哎....

使用道具

foocares 发表于 2017-6-6 00:57:40 |显示全部楼层 |坛友微信交流群
番茄奏鸣曲 发表于 2017-6-5 23:54
啊!这个我没有想到....如果是这样的话我应该怎么去处理呢?请指点...
我觉得这两个表里应该有一个park ID是共享的,要么是第二个表里也应该有park名字这一项,不然就乱套了。
如果有,那倒是简单,上头例子里的判选条件里再加一个类似于
and data1.park=data2.park;
就好

使用道具

foocares 发表于 2017-6-6 00:57
我觉得这两个表里应该有一个park ID是共享的,要么是第二个表里也应该有park名字这一项,不然就乱套了。
...
啊,那第二个表其实是我自建的,有点不明白为什么需要共享park id啊?
还有您上头的例子要不要加一个create table as语句啊?否则新合成的表格应该怎么看啊?

使用道具

foocares 发表于 2017-6-6 01:25:06 |显示全部楼层 |坛友微信交流群
番茄奏鸣曲 发表于 2017-6-6 01:07
啊,那第二个表其实是我自建的,有点不明白为什么需要共享park id啊?
还有您上头的例子要不要加一个cre ...
噢,可以的。不写就自动按SAS缺省输出在SQL目录下了。

使用道具

foocares 发表于 2017-6-6 01:25
噢,可以的。不写就自动按SAS缺省输出在SQL目录下了。
啊!我发现个问题,那个park的数据有一万多个,因为是吧所有公园集合在一起,每个公园都是1992~2016的数据,然后另外一个表格的数据(有CCI)的只有300个,就是从1992~2016的数据,不好意思问一下我怎么拿那个少的去merge一万多数据的那个,还是用您提供的那个方法么?....我刚刚试了,好像不行哎....不好意思哦我问题比较多

使用道具

王贴贴123456 发表于 2017-6-5 22:13
您好,您的程序应该是正确的,我好像知道问题在什么地方了,我excel导入的数据是字符,也就是data1,而另外一个是数字字符,知道如何把字符转为数字的么?

使用道具

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

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

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

GMT+8, 2024-3-29 06:21