Импорт дат из Excel в SAS - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть даты в Excel в следующем формате 15.02.2011.Когда я импортирую в Excel, даты являются числовыми, например, 40561. Когда я конвертирую их в SAS, используя приведенный ниже код, я получаю такие даты, как 01.04.1946.Пока мой код:

data Reformat11;
    set Old;
    Amount1 = input(Amount, comma10.);
    DateReceived2 = Input(PUT(DateReceived, 5.), MMDDYY10.);
    Format DateReceived2 MMDDYY10.;
    format DateApproved MMDDYY10.;
run;

Любые другие предложения?

1 Ответ

0 голосов
/ 25 февраля 2019

SAS знает, как импортировать даты из Excel.Чего он не может сделать, так это обрабатывать разные типы данных для одной переменной.Наборы данных SAS больше похожи на базу данных, чем на электронную таблицу.Если вы можете, внесите исправления в исходный файл Excel, чтобы каждая ячейка в этом столбце содержала действительные даты, и ваша проблема должна исчезнуть.

Обычно вы будете видеть только необработанные значения числа дней в Excel, когда ваш столбец вExcel имеет смешанные форматы.Таким образом, если некоторые ячейки являются символьными, тогда весь столбец будет символьным, и SAS получит число дней в виде строки символов, которая представляет это число.Таким образом, в вашем примере вы увидите значение '40561' в SAS.Поэтому сначала необходимо преобразовать это число, а затем настроить для различных базовых дат, используемых в SAS и Excel.

DateReceived2 = Input(DateReceived, 5.) + '30DEC1899'd ;

Затем можно прикрепить любой допустимый формат даты.Я бы избегал MMDDYY или DDMMYY, поскольку вы запутаете половину своей аудитории (вы имеете в виду 1 апреля или 4 января?).Попробуйте YYMMDD или DATE.

format DateReceived2 yymmdd10.;
...