即使此代码在Windows的SAS 9.4上也可以运行,为什么该代码在SAS University Edition中不起作用?
DATA HealthPlan;
INFILE DATALINES FIRSTOBS = 2;
INPUT Department :$10. HealthPlan $;
DATALINES;
Department HealthPlan
Accounting A
Food A
Security B
;
RUN;
似乎使用了分隔符。如果我添加DLM = '09'x
,则它将在University Edition上运行,但否则,我的日志文件的输出如下:
1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
72
73 DATA HealthPlan;
74 INFILE DATALINES FIRSTOBS = 2;
75 INPUT Department :$10. HealthPlan $;
76 DATALINES;
NOTE: LOST CARD.
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
81 ;
Department=SecurityB HealthPlan= _ERROR_=1 _N_=2
NOTE: SAS went to a new line when INPUT statement reached past the end of a line.
NOTE: The data set WORK.HEALTHPLAN has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
81 ;
82 RUN;
83
84 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
97
编码有问题吗?
答案 0 :(得分:1)
因为SAS / Studio编辑器不够聪明,无法在将代码传递给SAS执行之前用空格替换制表符。
您真的不应该在SAS程序中添加标签,而且绝对不要放在行内数据的中间。
如果由于您粘贴了从Excel复制的单元格而使选项卡进入数据行,那么如果您更改SAS / Studio中的编辑器首选项设置以将选项卡替换为空格,则在粘贴到编辑器中时这些选项卡将被替换。 / p>
答案 1 :(得分:0)
可能与所写代码的行尾有关。 在linux中有LF(换行),而在Windows中则有CRLF(回车和换行)。如果您共享完全相同的代码,则可能会被误解。 也许只是在某些编辑器中查看显示不可打印字符的代码。
读取/写入文件时,相关的SAS选项为TERMSTR option,但是不适用于数据线。
答案 2 :(得分:0)
尝试使用EXPANDTABS INFILE语句选项。之所以有时可行,是因为某些编辑器在您提交其他选项卡时却扩展了选项卡。