Сохраняйте значения переменных на основе Date SAS

У меня есть следующий набор данных:

  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 г.) я хотел сохранить как A, так и N, но только N с оставшимися месяцами года (февраль, март.. .до декабря). Таким образом, набор данных выше должен выглядеть следующим образом:

 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.

Как видите, когда это начало месяца (январь), я сохраняю и A, и N, но только N с оставшимися месяцами, пока не доберусь до начала (января) следующего года, а затем процесс повторяется ( т. е. оставить A и N в январе 2007 г. и только N в оставшиеся месяцы и так далее в течение всех оставшихся лет).

Каков наилучший способ сделать это? Я знаю, что мог бы, вероятно, использовать какой-то условный оператор if then, но я просто не могу обдумать это.


person user2916331    schedule 21.10.2015    source источник


Ответы (1)


Вы можете использовать что-то вроде .. Я надеюсь, что ваша дата в формате даты, иначе substr для получения «Ян»

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

если не формат даты, то

if substr(date,1,3) ne "Jan" and Action= "A" then delete;
person NEOmen    schedule 21.10.2015
comment
Идеальный!. Большое спасибо! - person user2916331; 21.10.2015