【问题标题】:How to import a raw data using "input" in SAS如何在 SAS 中使用“输入”导入原始数据
【发布时间】:2022-01-15 09:18:59
【问题描述】:

我想在 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 import sas


    【解决方案1】:

    输入语句中的& 修饰符表示要在一行中查找两个或多个分隔符以标记该行中下一个“单词”的结尾。确保数据行实际上有额外的空间。还要确保在 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
    ;
    

    【讨论】:

      【解决方案2】:

      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 语句中有 选项,用于读取结构化和非结构化数据,但归根结底,尽可能以分隔格式获取它是最简单的。

      【讨论】:

      • 非常感谢,很有用。我明白了!
      猜你喜欢
      • 2022-01-20
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 2013-09-27
      • 1970-01-01
      • 2020-06-11
      相关资源
      最近更新 更多