Как импортировать необработанные данные с помощью «ввода» в SAS

#input #import #sas

#вход #импортировать #САС

Вопрос:

Я хотел бы импортировать необработанные данные, используя «ввод» в SAS. Моя следующая программа работает не очень хорошо. Как мне это сделать? Пожалуйста, дайте мне несколько советов.

 data dt00; infile datalines; input Year School amp; $27. Enrolled : comma.; datalines; 1868 U OF CALIFORNIA BERKELEY 31,612 1906 U OF CALIFORNIA DAVIS 21,838 1965 U OF CALIFORNIA IRVINE 15,874 1919 U OF CALIFORNIA LOS ANGELES 35,730 ; run;  

Ответ №1:

amp; Модификатор в вашем операторе ввода указывает на поиск двух или более разделителей в строке, чтобы отметить конец следующего «слова» в строке. Убедитесь, что в строках данных действительно есть дополнительное пространство. Также не забудьте включить : модификатор перед любой спецификацией informat во входном операторе.

 data dt00;  input Year School amp; :$27. Enrolled : comma.; datalines; 1868 U OF CALIFORNIA BERKELEY 31,612 1906 U OF CALIFORNIA DAVIS 21,838 1965 U OF CALIFORNIA IRVINE 15,874 1919 U OF CALIFORNIA LOS ANGELES 35,730 ;  

Ответ №2:

datalines по умолчанию разделен пробелом. Вы можете указать конкретную длину строки, как вы делаете, и выполнить дополнительную очистку после обработки, но проще всего добавить другой разделитель и включить этот dlm параметр в свой infile оператор.

 data dt00;  infile datalines dlm='|';   length Year 8. School $27. Enrolled 8.;   input Year School$ Enrolled : comma.;   datalines;  1868|U OF CALIFORNIA BERKELEY|31,612  1906|U OF CALIFORNIA DAVIS|21,838  1965|U OF CALIFORNIA IRVINE|15,874  1919|U OF CALIFORNIA LOS ANGELES|35,730  ; run;  

Выход:

 Year School Enrolled 1868 U OF CALIFORNIA BERKELEY 31612 1906 U OF CALIFORNIA DAVIS 21838 1965 U OF CALIFORNIA IRVINE 15874 1919 U OF CALIFORNIA LOS ANGELES 35730  

В SAS есть множество опций input для чтения как структурированных, так и неструктурированных данных, но, в конце концов, проще всего получить их в формате с разделителями, когда это возможно.

Комментарии:

1. большое вам спасибо, очень полезно. Я понял!