2016-01-12 4 views
1

Я пытаюсь импортировать файл текстовых данных в SAS. Это как это,Импорт текстового файла в SAS: Дата без ведущих нулей

EmployeeID Birthday Gender 
10001 5/1/1978 Female 
10005 9/16/1982 Male 
... 

Вот мой код,

data employee; 
    infile "employee2015.txt" delimiter=' ' firstobs=2; 
    input employeeid birthday MMDDYY10. gender $; 
run; 

Это не работает, потому что длина дня не фиксируется, так что следующий переменный Пол будет затронут (что-то вроде " emale ". Если я изменю его на MMDDYY8. в колонке «Пол» появятся некоторые цифры.

Я пробовал импортировать день рождения как символ, он выглядит отлично, но когда я пытаюсь отформатировать его до mmddyy10. будет сообщено об ошибке. И я считаю, что должны быть какие-то прямые способы сделать это, поэтому я прошу помочь здесь ...

Любое предложение будет высоко оценено.

+0

Попробуйте 'anydtdte.' Informat вместо' mmddyy10.' –

ответ

3

Удалите спецификацию разделителя и создайте вместо этого инструкцию для информирования. Возможно, вам придется настроить инструкцию informat для удовлетворения ваших реальных потребностей в данных.

data want; 
informat employeeid $5. birthday mmddyy10. gender $8.; 
format birthday date9.; 
input EmployeeID $ Birthday Gender $; 
cards; 
10001 5/1/1978 Female 
10005 9/16/1982 Male 
; 
run; 

proc print;run; 
+0

Большое спасибо! Проблема полностью решена. Однако мои данные взяты из текстового файла. Если я удалю спецификацию разделителя, импортированные данные будут испорчены. Я думаю, что это информационное заявление, которое делает трюк. –

+0

Возможно, но SAS использует пробелы по умолчанию. Если его вкладка должна была быть указана как «09'x». – Reeza

+0

Вы правы ... Я этого не знал. –

Смежные вопросы