首页 > 解决方案 > 输入语句中日期变量名前面@6和@15的含义

问题描述

我写了以下代码:

data dummy;
input @6 dt1 ddmmyy8. @15 dt2 ddmmyy10.;
cards;
30-12-16 30-12-2016
;
run;

这在 LOG 中给出了以下注释:

1          OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
 72         
 73         data dummy;
 74         input @6 dt1 ddmmyy8. @15 dt2 ddmmyy10.;
 75         cards;

** NOTE: Invalid data for dt1 in line 76 6-13.**
** NOTE: Invalid data for dt2 in line 76 15-24.**
 RULE:      ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0                     
 76         30-12-16 30-12-2016
 dt1=. dt2=. _ERROR_=1 _N_=1
 NOTE: The data set WORK.DUMMY has 1 observations and 2 variables.

**问题 1:** 变量名 dt1 和 dt2 前面的 @6 和 @15 是什么意思?**问题 2:** 为什么这段代码不起作用?输出显示缺失值而不是 SAS 日期。

标签: sas

解决方案


INPUT语句中 的@ 参数是一个列指针控件。从文档

@n
将指针移动到第 n 列。

通过编码@6@15将解析数据的列在下面标记为^

RULE:      ----+----1----+----2----+----3----+----4----+----5
76         30-12-16 30-12-2016
                ^^^^^^^^                <-- @6 dt1
                         ^^^^^^^^^^     <-- @15 dt2

您“指向”错误的列来读取数据。正确的列是@1@10


推荐阅读