как конвертировать best12. на сегодняшний день9 САС - PullRequest
0 голосов
/ 03 февраля 2020

Добрый день

, поэтому у меня есть BEST12.

enter image description here

Я хочу преобразовать в date9.

поэтому мой код

data step7_1;
set step7;
service_day2= input(put(datedate, z8.),yymmdd8.);
format service_day2 date9.;
run;

ошибка

NOTE: Invalid argument to function INPUT at line 92 column 15.
NOTE: Mathematical operations could not be performed at the following places. The results of the
      operations have been set to missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      4 at 97:15

как я могу решить эту проблему?

Спасибо

Казу

1 Ответ

1 голос
/ 04 февраля 2020

Формат - это просто механизм отображения данных, поэтому нет необходимости применять функции для его «преобразования», просто примените формат с помощью оператора формата:

data step7_1;
    set step7;
    service_day2 = datedate;
    format service_day2 date9.;
run;

Если вам не нужно новую переменную, вы можете просто использовать только оператор формата:

data step7_1;
    set step7;
    format datedate date9.;
run;

Или вы можете просто изменить исходный набор данных напрямую, используя PROC DATASETS:

proc datasets lib=work nolist;
  modify step7;
  format datedate date9.;
quit;

Это имеет преимущество не копируя данные, он будет работать быстрее и просто изменяет метаданные набора данных на месте.

...