SAS函数,用于在月份与两组列中的两个日期匹配时删除数据

SAS函数,用于在月份与两组列中的两个日期匹配时删除数据,sas,enterprise-guide,Sas,Enterprise Guide,我有一个大数据,数据分为两列(15年数据)。如果两列之间的月份匹配(不关心日期或年份),我希望删除日期,例如:2006年2月1日-2017年2月1日,我需要删除该日期,因为月份匹配,而2006年2月16日-2017年6月23日不匹配,因此我需要一个新列来表示差异为4个月。如果两个月之间的差值为+/-30天,则必须在2005年1月1日至2014年12月20日之前将其删除。 请帮忙!我还在学习SAS。 提前感谢您的帮助。好的。这个问题有点不清楚。但正如我推断的,这个问题有很多潜在的问题: “删除具有

我有一个大数据,数据分为两列(15年数据)。如果两列之间的月份匹配(不关心日期或年份),我希望删除日期,例如:2006年2月1日-2017年2月1日,我需要删除该日期,因为月份匹配,而2006年2月16日-2017年6月23日不匹配,因此我需要一个新列来表示差异为4个月。如果两个月之间的差值为+/-30天,则必须在2005年1月1日至2014年12月20日之前将其删除。 请帮忙!我还在学习SAS。
提前感谢您的帮助。

好的。这个问题有点不清楚。但正如我推断的,这个问题有很多潜在的问题:

“删除具有匹配月份的OBervation”

这可以使用月函数获得。(或者,如果日期为字符串,则为子字符串。)

“我需要一个新的专栏来说明差异是4个月。”

在这里输入您的友好功能。您可以计算日期之间的时差

“如果日期差为+-30天,则删除观察结果”

同上,但在本例中为天

Data refined;
    set begin;
    TimeDifference = intck('days', date_var1, date_var2) ;
    if abs(TimeDifference) <=30 delete;
run;
数据细化;
设置开始;
时差=intck('days',date_var1,date_var2);

如果abs(时差)发布样本数据和您迄今为止尝试的内容。因此,它不是一个代码编写服务,您确实需要先尝试自己解决这个问题,然后告诉我们您尝试了什么,哪些不起作用。
Data refined;
    set begin;
    TimeDifference = intck('month', date_var1, date_var2);
run;
Data refined;
    set begin;
    TimeDifference = intck('days', date_var1, date_var2) ;
    if abs(TimeDifference) <=30 delete;
run;