У меня есть набор данных и переменная с именем 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. Есть идеи? Большое спасибо!
2 ответа
Ваше значение - это дата и время, а не дата. Вам нужно добавить dt
в начало интервала, например, чтобы увеличить значение datetime:
DATA newdata;
SET olddata;
newvariable = INTNX('dtmonth',olddate,0,"B");
RUN;
Помимо того, что предлагает @Dwal, вы можете использовать функцию datepart для извлечения даты и можете использовать ту же формулу, которую вы использовали.
newvariable = INTNX('month',datepart(olddate),0,"B");
Похожие вопросы
Новые вопросы
sas
Язык SAS - это 4GL, который лежит в основе системы SAS, набора продуктов, сосредоточенных вокруг обработки данных и статистических процедур. При возникновении вопросов о коде, пожалуйста, включите ваш код и некоторые данные, чтобы воспроизвести вашу проблему, либо в выражениях линий данных / карточек, либо с помощью набора данных sashelp, например sashelp.class или sashelp.cars.