楼主: 番茄奏鸣曲
10023 12

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

  • 0关注
  • 0粉丝

硕士生

60%

还不是VIP/贵宾

-

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

楼主
番茄奏鸣曲 发表于 2017-6-5 11:01:57 |AI写论文
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来判断合并就够了吗,虽然看到的这一页没有这个问题,但如果后头不同的公园有相同的年和月记录呢?



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

报纸
番茄奏鸣曲 发表于 2017-6-6 00:20:21
王贴贴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;
就好

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

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

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

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

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

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