根据Date SAS保留变量值

时间:2015-10-21 05:50:47

标签: sql sas subset proc

我有以下数据集:

  Date      Action     
 Jan2006      A
 Jan2006      A
 Jan2006      A
 Jan2006      N
 Jan2006      N
 Feb2006      A
 Feb2006      N
 Feb2006      N
 Mar2006      A
 Mar2006      N
 Mar2006      N
 Apr2006      A
 Apr2006      N
  and so on until Dec2014. 

我想做的是创建一个新的数据集,以便在年初(即2006年1月)时,我想保留A和N,但只有N和一年中的剩余月份(2月,三月......直到十二月)。因此,上面的数据集应如下所示:

 Date      Action     
 Jan2006      A
 Jan2006      A
 Jan2006      A
 Jan2006      N
 Jan2006      N
 Feb2006      N
 Feb2006      N
 Mar2006      N
 Mar2006      N
 Apr2006      N
 and so on until Dec2014.

正如你所看到的那样,当它是月初(1月)时,那么我保持A和N两者,但是剩下的几个月只有N,直到我到明年(1月)开始,然后是过程重复(即在2007年1月保留A和N,剩余月份仅保留N,所有剩余年份保持等等)。

这样做的最佳方法是什么?我知道我可能会使用某种条件if if语句,但我无法绕过它。

1 个答案:

答案 0 :(得分:1)

你可以使用类似的东西..我希望你的日期是日期格式,否则是获取" Jan"

if month(date) ne 1 and Action= "A" then delete;

如果不是日期格式则

if substr(date,1,3) ne "Jan" and Action= "A" then delete;