У меня есть набор данных и переменная с именем date. Он выглядит как "31MAY13: 00: 00: 00" и имеет тип данных date. Теперь я хочу создать новую переменную, чтобы это был первый день соответствующего месяца. Итак, для «31MAY13: 00: 00: 00» он даст мне «01MAY13: 00: 00: 00». Вот мой код:

DATA newdata;
SET olddata;
newvariable = INTNX('month',olddate,0,"B");
RUN;

В журнале указано: Аргумент 2 для функции INTNX недействителен. Я давно работал с SAS. Есть идеи? Большое спасибо!

sas
0
3x89g2 20 Фев 2015 в 09:23

2 ответа

Лучший ответ

Ваше значение - это дата и время, а не дата. Вам нужно добавить dt в начало интервала, например, чтобы увеличить значение datetime:

DATA newdata;
SET olddata;
newvariable = INTNX('dtmonth',olddate,0,"B");
RUN;
6
DWal 20 Фев 2015 в 06:47

Помимо того, что предлагает @Dwal, вы можете использовать функцию datepart для извлечения даты и можете использовать ту же формулу, которую вы использовали.

newvariable = INTNX('month',datepart(olddate),0,"B");
2
NEOmen 20 Фев 2015 в 07:00