SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 816|回复: 4
打印 上一主题 下一主题

请教:merge时日期的处理

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-6-24 02:08:28 | 只看该作者

请教:merge时日期的处理

遇到一个问题,实在不知道如何解决了,请大家帮忙
有两个数据集,导入前日期都是年月日形式的,我导入后,我需要将其合并,两个日期都是都是每年每月最后几天的,但不一致,比如数据集a 19980128 1990228 19980330 数据集b 19980129 19980229 19980330 ,我的方法是只取两个日期的年月(事实上,我要的就是以年月为标准进行合并,不用管是哪天),然后合并
处理方法如下:
data a1;
set a;
format date yymm10.;
run;

data b1;
set b;
format date yymm10.;

proc sort data=a1;by date;run;
proc sort data=a1;by date;run;

data ab;
merge a1(in=a) b1(in=b);
by date;
if a=1 and b=1;
run;

结果,a1和b1的确都显示1998M1等形式,但合并进行后,发现结果还是根据原始的带有天数的日期合并的,比如我举的例子中,只合并了19980330,另外两个没有合并,请问大家这到底是怎么回事?我是初学SAS,谢谢大家啦~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-6-24 04:34:34 | 只看该作者

Re: 请教:merge时日期的处理

data a1;
set a;
date_=put(date, yymm10.);
run;

data b1;
set b;
date_=put(date, yymm10.);
run;

proc sort data=a1;by date;run;
proc sort data=a1;by date;run;

data ab;
merge a1(in=a rename=(date=dateA)) b1(in=b rename=(date=dateB));
by date_;
if a=1 and b=1;
format dateA dateB mmddyy10.;
run;
回复 支持 反对

使用道具 举报

0

主题

0

帖子

2

积分

新手上路

Rank: 1

积分
2
板凳
发表于 2009-6-24 09:47:00 | 只看该作者

Re: 请教:merge时日期的处理

[code:yujhin09]proc sql noprint;
create table temp as select a.*,b.*
from temp1 as a
join temp2 as b
on put(input(a.date,yymmdd10.),monyy5.)=put(input(b.date,yymmdd10.),monyy5.);
quit;[/code:yujhin09]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-6-24 10:03:27 | 只看该作者

Re: 请教:merge时日期的处理

不好意思,没有注意看原来数据的格式,误导了。
Therefore, Vicky's input function is necessary.Thanks
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2009-6-24 11:06:21 | 只看该作者

Re: 请教:merge时日期的处理

非常感谢楼上二位~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 19:38 , Processed in 0.100857 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表