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

How to import a raw data using "input" in SAS

我想在 SAS 中使用“输入”导入原始数据。我的以下程序运行不正常。我怎么做?请给我一些建议。

data dt00;
infile datalines;
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;

datalines 默认为 space 分隔。您可以在执行操作时指定特定的行长度并执行额外的 post-processing 清理,但最简单的方法是添加不同的分隔符并在 infile 语句中包含 dlm 选项.

data dt00;
    infile datalines dlm='|';

    length Year 8. School . 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 语句中有 ton 个选项用于读取结构化和非结构化数据,但归根结底,最容易获得它尽可能使用分隔格式。

输入语句中的 & 修饰符表示在一行中查找两个或多个分隔符以标记行中下一个“单词”的结尾。确保数据行实际上有额外的 space。还要确保在 INPUT 语句中的任何信息格式规范前面包含 : 修饰符。

data dt00;
  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
;