2024-06-19 base SAS programming 学习笔记3(READ RAW FILES)

    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窗口 

举例如下:

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值