SAS中文论坛

标题: 如何计算年龄? [打印本页]

作者: shiyiming    时间: 2008-1-29 13:53
标题: 如何计算年龄?
现有2个日期型变量,格式为年月(6位数),不知如何算出其年龄?谢谢!
data a ;
input a yymmn6. b  yymmn6.;
cards;
194009        200706
194702        200706
194701        200706
195001        200706
193811        200706
193004        200706
;
run;
作者: shiyiming    时间: 2008-1-29 14:06
标题: Re: 如何计算年龄?
data b;
set a;
yya=input(substr(a,1,4),4.);
mma=input(substr(a,5,2),2.);
yyb=input(substr(b,1,4),4.);
mmb=input(substr(b,5,2),2.);
age=intck('year',mdy(mmb,0,yyb),mdy(mma,0,yya));
run;
作者: shiyiming    时间: 2008-1-29 19:26
标题: Re: 如何计算年龄?
[code:1lj1pwbn]
data a ;
input a:yymmn6. b:yymmn6.;
cards;
194009 200706
194702 200706
194701 200706
195001 200706
193811 200706
193004 200706
;
run;
data result;
set a;
age=intck('year',a,b);
run;
[/code:1lj1pwbn]
作者: shiyiming    时间: 2008-1-30 12:29
标题: Re: 如何计算年龄?
不错,问题解决了,谢谢!!!
作者: shiyiming    时间: 2008-1-30 14:43
标题: Re: 如何计算年龄?
Age =  floor((intck('month',birthdate, currentdate)- (day(birthdate)<day(currentdate)))/12);
作者: shiyiming    时间: 2008-2-2 15:35
标题: Re: 如何计算年龄?
我在一家CRO公司从事统计分析的工作,公司常规的做法是:age=int((mdy(mmb,0,yyb)-mdy(mma,0,yya))/365.25).但是如果碰到月日相同时,用这种方法就比实际年龄小一岁,所以在这种情形下,我们就加一岁。
作者: shiyiming    时间: 2008-2-15 20:27
标题: to haiyangdexin
在一份SAS培训教程里,计算年龄也是用你所示的365.25,大致如下,原帖在[url:mjg0p2uq]http://www.cos.name/bbs/read.php?tid=9558[/url:mjg0p2uq]

[code:mjg0p2uq]
data a ;
  input a yymmn6. b yymmn6.;
  format a yymmn6.;
  format b yymmn6.;
cards;
194009200706
194702200706
194701200706
195001200706
193811200706
193004200706
;
run;

data b;
   set a;
   age=(b-a)/365.25;
   age_int=ceil(age);
run;
[/code:mjg0p2uq]




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2