【发布时间】:2016-04-08 21:30:20
【问题描述】:
我正在研究在 SAS 中导入两个 txt 文件的两个过程。第一个文件是固定宽度。第二个txt文件是分隔文件。下面附上SAS代码:
DATA filename; INFILE "filelocation"; INPUT VAR1 $1-11 VAR2 $13-16 @18 VAR3 MMDDYY10. VAR4 $29-53; INFORMAT VAR1 $11.; INFORMAT VAR2 $4.; INFORMAT VAR3 MMDDYY10.; INFORMAT VAR4 $25.; FORMAT VAR1 $11.; FORMAT VAR2 $4.; FORMAT VAR3 MMDDYY10.; FORMAT VAR4 $25.; ; RUN;DATA filename; INFILE "filelocation" DELIMITER="|" MISSOVER DSD LRECL=32767; INFORMAT VAR1 $11.; INFORMAT VAR2 $4.; INFORMAT VAR3 MMDDYY10.; INFORMAT VAR4 $25.; FORMAT VAR1 $11.; FORMAT VAR2 $4.; FORMAT VAR3 MMDDYY10.; FORMAT VAR4 $25.; INPUT VAR1 $ VAR2 $ VAR3 VAR4 $ ; RUN;
我的问题是:
1. 为什么“INPUT”在第一个程序的代码开头,而在第二个程序的最后? “INPUT”的顺序重要吗?
在第一个过程中,VAR3前面有一个“@18”,其中VAR3是一个代表日期的变量,它决定了VAR3从第18位开始。所有变量都可以使用这个表达式吗? 前任。 @1 VAR1 $
@13 VAR2 $
@18 VAR3 MMDDYY10.
@29 VAR4 $;在程序2中,
输入 VAR1 $
VAR2 $
VAR3
VAR4 $
为什么变量“$”符号后没有任何数字来确定变量的长度?
谢谢!
【问题讨论】:
-
一次问题太多了。请将您的问题简化为每个帖子一个。
-
感谢您的建议。我把它缩小到三个问题,它们都是相关的。希望这更好理解。
标签: input import sas fixed-width delimited