sas中数据输入输出格式

1、format自定义输出格式

源数据:

// original data
data exer;
input name $5. age gender;
cards;
liyi 14 1
lier 14 1
lisan 23 2
lisi 45 1
liwu 65 2
liliu 90 1
liqi 56 2
liba 45 1
lijiu 43 2
;
run;

exer数据:
源数据展示
format是sas过程步中的一个功能,能够对数据的输出格式进行定义,可以直接定义一个过程步,利用proc format 直接定义完整的输出格式,也可以通过在data下进行format定义。
对于上述exer数据,为了对age和gender进行处理,将gender中的1对应male,将2对应female。将age分成不同阶段并且命名。以proc方式为例:

// define the output format
proc format;
value gendera 1="male" 2="female";
value agea low-<30="tee" 30-<60="tee1" 60-<100="tee2";
data exer;
input name $5. age gender;
format age agea. gender gendera.;
cards;
liyi 14 1
lier 14 1
lisan 23 2
lisi 45 1
liwu 65 2
liliu 90 1
liqi 56 2
liba 45 1
lijiu 43 2
;
proc print;
run;

处理结果:
输出结果
可以看出,源数据的age和gender都根据需要改变了输出格式。

2、format自定义输入格式

对于一份数据来说,在录入sas过程中,包括录入前,sas中文件数据,录入后显示三部分。value提供了已录入格式的显示格式,invalue提供了对未录入数据的改变。invalue用法如图所示:

// define the output format
proc format;
invalue gendera "male"=1 "female"=2;
invalue agea 0-<30=30 30-<60=60 60-<100=100;
data exer2;
input name:$5. age agea2. gender:gendera1.;
cards;
liyi 14 male
lier 14 male
lisan 23 female
lisi 45 male
liwu 65 female
liliu 90 male
liqi 56 female
liba 45 male
lijiu 43 female
;
proc print;
run;

对于源数据,我们需要对gender这个属性进行统计分析,可以将其转变为数值格式。对于age这个属性,为了对其class进行提取,同样可以对其进行转换。其结果如下:
运行结果
在invalue处理过程中,注意点是对数据输入格式的处理,与value方式相比,invalue格式更加需要考虑到输入后数据的格式问题和长短,如上例所示age,对于其invalue格式agea,需要在后面输入变量长度,不然会导致读入的时候因为前面name长度不一致而导致的问题。
与value相比,invalue需要考虑更多格式问题,但在实际操作过程中,value与invalue基本可以达成相似的效果,即对已有数据转化格式并保存。
并且由于数据直接输入方式中长度和空格划分方式的影响,最好在把数据录入行程表之后进行操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值