查询混合输入样式SAS数据。此代码未提供正确的输出

时间:2019-05-16 15:37:17

标签: sas

    DATA nationalparks;
    INPUT @1 ParkName $ 1-21  @23 State $ Year @40  Acreage COMMA9.;
    DATALINES;
    Yellowstone           ID/MT/WY 1872 4,065,493
    Everglades            FL       1934 1,398,800
    Yosemite              CA       1864 760,91
    Great Smoky Mountains NC/TN    1926 520,269
    ;
    RUN;

此SAS代码未显示正确的结果集。

1 个答案:

答案 0 :(得分:0)

如果数据确实在您的代码正在使用的列中,那么您的程序对我来说看起来不错。

确保您没有缩进数据线。还要检查您的编辑器没有用TAB字符替换空格。确保STATE和YEAR始终具有一个值,并且该值不包含任何空格。您可以使用.标记缺失值,即使对于字符变量STATE也是如此。您可以改为使用列来读取STATE和YEAR,然后空格将被视为丢失。无需为最后一个变量使用格式化的输入,如果添加:修饰符,则SAS将使用列表模式并调整信息格式上使用的宽度以匹配行中下一个值的宽度。但是如果缺少ACREAGE,请再次使用.进行标记。或在INPUT语句之前添加INFILE DATALINES TRUNCOVER;语句。

DATA nationalparks;
  INPUT ParkName $ 1-21 State $ 23-30 Year 32-35 Acreage :COMMA.;
*---+----10---+----20---+----30---+----40---+----50;
DATALINES;
Yellowstone           ID/MT/WY 1872 4,065,493
Everglades            FL       1934 1,398,800
Yosemite              CA       1864 760,91
Great Smoky Mountains NC/TN    1926 520,269
;

结果:

Obs    ParkName                 State       Year    Acreage

 1     Yellowstone              ID/MT/WY    1872    4065493
 2     Everglades               FL          1934    1398800
 3     Yosemite                 CA          1864      76091
 4     Great Smoky Mountains    NC/TN       1926     520269