Преобразовать столбец SAS в формат даты - PullRequest
0 голосов
/ 09 октября 2018

У меня есть колонка дат в лучшем6.формат, например, 201301 - январь 2013, 201402 - февраль 2014.

Возможно ли преобразовать это в дату9.формат?

В конечном итоге я хотел бы иметь столбец с указанием только года, то есть 2013, 2014, 2015, 2016 и т. д.

Моя основная таблица называется "file1", моя колонка с датами -называется "date1" и столбец, который я хотел бы только с годами называется "year1".Я попытался:

     data file1;
       year1= date1
       format year1 YEAR4.
     run;

Но это не сработало.Это дает мне вывод двух пустых ячеек, названных year1 и date1.

Ответы [ 3 ]

0 голосов
/ 09 октября 2018

Поскольку переменная date1 не является датой SAS, т. Е. У вас просто числовое значение 201301, представляющее январь 2013 года, вы должны просто иметь возможность использовать некоторые математические функции, например:

data want;
   set file1;
   year1 = int(date1/100);
run;
0 голосов
/ 09 октября 2018

Сначала проверьте, является ли это 6-значным числом, а не yymmn6.Формат даты.Если это yymmn6.Формат вы можете просто добавить формат year4.или date9 .. В противном случае согласен с user667589:

data test;
  format date1 year4.;
  set file1;
run;

data test2;
  format mydate9 date9. myyear year4.;
  mydate = 201301;
  mydate9 = input(put(mydate,6.),yymmn6.);
  myyear = mydate9;
run;
0 голосов
/ 09 октября 2018

Это немного неловко, так как вам нужно преобразовать из числа в символ и обратно:

data _null_;
  mydate = 201301;
  mydate9 = input(put(mydate,6.),yymmn6.);
  format mydate9 date9.;
  put _all_;
run;
...