#sas
#sas
Вопрос:
Я объединил два набора данных. Один набор данных содержит дату отправки проекта, а другой — дату завершения проекта. Я хочу иметь новый набор данных, содержащий только проекты, в которых дата окончания предшествует дате отправки. Я в основном пытаюсь определить, где проекты должным образом закрываются, прежде чем мы отправим их на внешние проверки. Обе переменные даты являются date9. форматы.
Данные выглядят примерно так (редактировать: пропущенных дат нет)
Service Submission_date End_date
1 1/1/2010 2/1/2009
2 2/1/2010 12/31/2010
3 5/1/2012 3/1/2010
Я использовал простой оператор where, но я все еще не вижу неправильных дат. Я использовал код, подобный этому:
data correctsubmission;
set projects;
where end_date < submit_date;
run;
Есть идеи?
Комментарии:
1. Если
end_date
отсутствует, то оно будет меньше, чемsubmit_date
. SAS обрабатывает все пропущенные значения как меньшие, чем любое фактическое число.2. Ни одна из моих дат не пропущена в этом экземпляре
3. Это submission_date или submit_date? Потому что у вас есть оба вопроса. Кроме того, я рекомендую протестировать ваш код с константой date, заменяющей end_date и submit_date по отдельности, чтобы проверить, правильно ли SAS распознает каждую переменную (например, где end_date < ’01JAN2010’d).
4. Какие-либо предупреждения или примечания в выходных данных журнала?
Ответ №1:
Убедитесь, что ваши переменные действительно содержат даты.
data have;
input Service Submission_date End_date ;
informat Submission_date End_date mmddyy.;
format Submission_date End_date yymmdd10.;
cards;
1 1/1/2010 2/1/2009
2 2/1/2010 12/31/2010
3 5/1/2012 3/1/2010
;
Они должны быть числовыми переменными, которые содержат количество дней с 1960 года. Предпочтительнее использовать формат даты (например, DATE, YYMMDD и т.д.), Чтобы пользователи могли прочитать отображаемое значение.
Также обязательно учитывайте пропущенные значения.
data want;
set have;
where .Z < end_date < submission_date;
run;
Или выполните обратный тест.
data want ;
set have;
where Submission_date > End_date ;
run;
Комментарии:
1. Спасибо, но пропущенных дат нет.