base SAS programing学习笔记(read raw files2)

使用COLUMN input和FORMATTED input读入固定位置的外部文件;如下图所示,

1.COLUMN input (按列数读入外部文件数据)

        使用column input 不需要按从左到右的顺序读取外部文件的数值,可以是任意读取,也可以重复读取,如下所示,(先读入的是第21至第22列的数据);

原数据:

程序:

结果:

2.标准数值形式

        SAS目前认可的标准数值形式有:数值、小数点、E(科学计数法)、+/-符号

        非标准的数值形式:%、$、","、分号、日期和形式、二进制或十六进制的形式

        对于非标准的数值形式如果还需按数值读入SAS数据,则不可以使用column input,需使用formatted input;

3.formatted input(指定读入的格式:informat)

       基本格式如下: input  <pointer control>  variable  format;

        pointer control:指针控制,说明开始读入的第1列(非必须),@n表名第n列,+n标明在现有往前n列;-n标明在现有往前n列;通过调整指针的位置可以按任意顺序读入数据;值得注意的是读完后指针会放在末列后加1位;

        variable: 变量名

        format: 读入的数据格式

举例如下:

上述 $表示字符,数字表示字符宽度;如$w.;

数值型变量w.d,w表示总宽度,d表示小数位数,如果没有设置d则小数位数保持如数值,为了小数位数全部读入进去w必须包括数值的总长度,如果长度不够,将截断小数位数;

但值得注意的是尽管在INPUT 语句设置数值变量读入的宽度,但是在SAS存储仍然8字节的浮点数,与数值宽度无关;如下所示:

含有逗号的数值,则使用特定的形式如commaw.d(w和d含义同上);

上述文件读入SAS结果如下:

SAS支持可读入的非标准数据为数值的格式(包括但不限于):

值得注意的是 COMMAw.d可移除如下特殊字符来读入数值:

空格,逗号,连接号(-),$,%,),“(”(左括号会视为负号放入数值)

4.INFILE 常用的选项PAD 和LRECL

        PAD 选项会将每条记录末端空格补齐

如上*号表示结束该行读取

加上PAD选项,则会补足空格,让末端的结束在同一列。

LRECL= 是将设置每行最大可以读入的长度

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值