Формат SAS dd-mm-yyyy в mmm-yy, например Excel - PullRequest
1 голос
/ 09 июля 2020

Я преобразовал дату 01-01-2020 в SAS-20 января, используя следующий формат pro c:

proc format;
    picture date9x other = '%b-%0y'( datatype= date );
        format MMYYYT date9x.;
run;

Это работает нормально, но когда я экспортирую значение SAS этой даты появляется в поле. Есть ли лучший способ конвертировать в MMM-YY?

1 Ответ

3 голосов
/ 09 июля 2020

Proc EXPORT будет использовать формат данных Excel по умолчанию, m / d / y, для любого столбца набора данных, отформатированного в формате даты SAS. Экспорт будет реплицировать формат SAS с «ближайшим» соответствующим форматом даты Excel.

ODS Excel будет применять форматирование Excel к переменным формата даты, чтобы они соответствовали такому же виду в SAS.

Как для mmm-yy или Jan-20

Формат SAS monyy приближает вас, но нет возможности вставить разделитель (-). Однако место назначения ODS Excel будет соблюдать директивы форматирования Excel, указанные в параметре стиля tagattr=.

Пример:

data have;
  date  = '01-JAN-2020'd;
  date2 = '01-JAN-2020'd;
  format date date9.;
run;

ods excel file='want-ods.xlsx';
proc print data=have;
  format date monyy5.;
  var date;
  var date2 / style=[tagattr='type:DateTime format:MMM-YY'];
run;
ods excel close;

options noxwait noxsync xmin;
%sysexec start "preview" want-ods.xlsx;

SAS-представление набора данных
enter image description here

Excel view of data set printed through ODS Excel, with Proc time formatting and styling.
введите описание изображения здесь

...