默认情况下,
我想使用"输入";在SAS中。我下面的程序运行不好。我该怎么做?请给我一些建议。
data dt00;
infile datalines;
input Year School & $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;
输入语句中的&
修饰符表示在一行中查找两个或多个分隔符以标记下一个"的末尾;单词";行中。确保数据行实际上有额外的空间。还要确保在INPUT语句中的任何信息规范前面都包含:
修饰符。
data dt00;
input Year School & :$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
;
datalines
以空格分隔。您可以在执行操作时指定特定的行长度,并进行额外的后处理清理,但最简单的做法是添加不同的分隔符,并在infile
语句中包含dlm
选项。
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
语句上有很多选项,用于读取结构化和非结构化数据,但最终,尽可能以分隔格式获取数据是最容易的。