1.FILENAME 语句
FILENAME同LIBNAME定义外部非SAS数据集存放的位置,格式如:
FILENAME filref "filename";
filename可以是一堆文件集合的地点,也可以是定义到一个文件名
如果filename是 文件名,使用方式如下:
filename exercise "c:\users\tmill.dat";
引用该filename方法如下:
如果filename是文件集合地点,使用方式如下:
filename tax "c:\users\personal\finances"
引用方式如下:
data clinic.therapy ;
infile tax(refund.dat);infile tax("refund") 引用的时候可以不显示文件名后缀,但文件名必须用引用引用
input name $ dept $ site $;
run;
2.INFILE 语句
INFILE file-specification options ;该options是指定读入文件的特性以及该如何读入
可以提前用filename定义好地点或文件名fileref,如:infile tests;
也可以直接写入文件地址,如 infile "c:\irs\personal\refund.dat"
options 如OBS=n 可以实现事先读取小部分数据以确认读入数据是否准确,如:
infile tests obs=10;
值得注意的SAS执行程序过程中因为数据引起的错误不会造成SAS终止执行,但是程序上的错误会引起SAS终止执行。
数据读入比较良好的逻辑是:
先少量使用INFILE OBS=N 读取数据,查看日志(log)是否有错误,打印导入数据,无误去掉OBS=N 读入所有的数据,查看日志是否有错误。有必要时再打印所有导入的数据。
3.INPUT
a) column input :input variables $ stacol-endcol 如:input ID 1-4, 字符变量需要加上$符号
采用column input读入数据,数据文件中必须是标准数据格式或者固定排列形式才可以;
标准数据是整数、小数点、科学计数以及正负号,如含有逗号或$或%都不是标准数据,不能用该方法读取;
数据文件固定排列形式如下:
举例如下:
在input语句后面可以自定义生成新变量,也可以用日期生成新的日期变量,日期形式必须是"ddmmmyy"D 或"在ddmmmyyyy"D,如:
TestDate="01jan2000"d;
还可以用时间生成新的时间变量或用日期时间生成新的日期时间变量,如:
time="9:25"t;
datetime="18jan2015:9:27:05"dt;
3.DATALINES语句
当DATA步直接读入数据,而非读取外面文件时使用datalines,datalines语句仅可在DATA步出现一次,出现在INPUT语句后,数据行前面,数据行以单独的分号";"作为行结束,后接run表示执行,如果数据行内有";",则使用dataline4,且数据行的结束行用4个分号";;;;",举例如下:
在分号";"行与RUN 语句中间的任何语句都不会被执行。
4.DATA _NULL_;
我们可以使用如下语句将SAS数据集输出至外部文件:
data _null_;
set clinic.stress;
file newdat或者"c:\clinic\patients\stress.dat";
put variables startcol(开始列)-endcol(结束列);
newdat 与infile fileref一致,均可以有filename 提前定义;
如果没有设置file 语句数据将会输出至log界面;
如果设置 file fileref print选项,结果会输出至output窗口
举例如下: