#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. большое вам спасибо, очень полезно. Я понял!