2016-05-16 242 views
1

我想在SAS中的两个日期之间找到精确的月份。我正在使用INTCK来做到这一点。SAS之间的确切月份

DATA dataset; 
     set dataset; 
     months_exact = intck ('months'. dob, doe); 
    RUN; 

现在如果我有日期2007年10月1日和2011年11月15日它给了我49个月我希望它给我49.47个月。但是我想为整个数据集做到这一点,而不必处理具有不同时间长度的月份。有没有办法做到这一点?

+1

计数天鸿沟由30.4375 – superfluous

+0

数目但是这并不总是准确... –

+0

你需要为你考虑什么是一个月的具体分数的算法。 – Tom

回答

1

假设你想结束一个月的分数:

获取49号像你现在这样。

查找开始和结束之间的天数。

days = end - intnx('month',start,months,'sameday'); 

然后找到结束月份的天数。

days_month = intnx('month',end,0,'end') - intnx('month',end,0,'begin') + 1; 

然后添加分数。

months_exact = months + days/days_month;