Преобразование столбца Date в правильные sas-даты и создание столбцов Year / month, начиная с этой даты 11FEB13: 22: 59: 00 создание столбца year - PullRequest
2 голосов
/ 08 марта 2020

У меня есть столбец Дата, Тип - Numeri c, Формат - DATETIME., Informat - ANYDTDTM40,

Данные выглядят так:

Date
11FEB13:22:59:00
29NOV13:18:03:00

Из этого столбца даты Мне нужно создать столбцы года и месяца.

Однако, когда я пытаюсь:

DATA Final;
Set Final;
Year = Year(Date);
Run;

Я получаю нулевые значения в столбце года.

Ответы [ 2 ]

3 голосов
/ 08 марта 2020

Предположим, date переменная содержит значения DateTime:

year_int = YEAR(DATEPART(date));

Значения SAS Date и DateTime являются числами с различными интерпретациями. Значение Date - это количество дней с начала эпохи, а DateTime - количество секунд.

Существуют различные функции для извлечения различных аспектов значений этих тезисов:

Примеры DateTime

  • YearPart(<em><code><datetime-value>)
  • TimePart(<em><code><datetime-value>)
  • DateTime() - текущая системная дата / время

Дата примеры

  • Year(<em>date-value</em>)
  • Month(<em><code><date-value>)
  • Day(<em><code><date-value>)

Одна из наиболее организованных ссылок для этих классов функций содержится в ETS документации , в которой документировано 36 различных функций.

DS2-версия этой документации тоже довольно чисто.

В базовой документации SAS перечислены те же функции даты и времени на странице "Функции SAS и функции CALL по категориям"

0 голосов
/ 08 марта 2020

Попробуйте использовать формат!

 set Final;
format date date9.;
Run;
DATA Final;
Set Final;
Year = year(date);
Run;
...