如何在 SAS 中使用"input"导入原始数据



我想使用"输入";在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语句上有很多选项,用于读取结构化和非结构化数据,但最终,尽可能以分隔格式获取数据是最容易的。

相关内容

最新更新