PROC FORMAT过程,用于自定义输入和输出格式

自定义格式必须写在date语句前面。

一、基本格式:

PROC FORMAT <options>;
<statements>;
RUN;

二、options:

LIBRARY=libref; 或 LIB=libref;

指定一个路径,用来永久存储自定格式。默认临时存储在Work.Formats中。

libname libref 'c:\sas\formats\lib';
proc format library=libref;... ;
run;

三、VALUE语句和INVALUE语句:

/*定义输入格式*/
invalue <$> 格式名 变量值或范围1=输入格式1 变量值或范围2=输入格式2……;
/*定义输出格式*/
value <$> 格式名 变量值或范围1=输出格式1 变量值或范围2=输出格式2……;

  格式名:

  • 长度不能超过32个字符
  • 不能是现有的SAS格式(dollarw.d...)
  • 不能以数字结束

关于$符号:

  • 如果定义输入格式:
    输入格式为字符时,需要在“格式名”前加$。
  • 如果定义输出格式:
    变量值或范围是字符时,需要在“格式名”前加$。
  • 总结:输入时,看等号右边;输出时看等号左边。
proc format;invalue fage low-<40=30 40-<50=40 50-<60=50 60-high=60;data creat_format;input id age fage.;/*在变量age后加上自定义的输入格式fage,别忘了加点号*/cards;
1 36
2 43
3 51
4 60
5 59
;
proc print;
run;

proc format;invalue $ grade 1="Freshman" 2="Sophomore" 3="Junior" 4="Senior";value fscore low-<60="不及格" 60-<80="及格" 80-high="优秀";
data grade;input id grade :$grade20. score;/*在变量grade后加上自定义的输入格式grade,此时加的$以及20.都是对于输入格式等号右边的考量。*/format score fscore.;/*指定输出格式所必须的语句*/cards;
1 1 60
2 4 59
3 3 80
4 2 79
;
proc print;
run;

关于格式定义:

语句格式

解释

invalue $ gender 1="male" 2="female";

创建输入格式gender

当输入1和2时,自动变为male和female。

由于male和female是字符,所以gender前加$。

value $ grade "a" - "g"="fair" "o","u"="other"

创建输出格式grade

当输入值介于a~g之间,输出为fair;

o和u输出为other。

由于"a"~ "g"等为字符,因此grade前加$。

invalue grade "a"-"g"=1 other=2;

创建输入格式grade

当输入值介于a~g之间,读取为1;

其他字母读取为2。

由于1、2为数值,因此grade前无须加$。

value age low-<40=30 40-<50=40 50-high =50;

创建输出格式age

当输入值<40时,输出为30;

当输入值≥40且<50时,输出为40;

当>50时,输出为50。

由于low-<40、40-<50、50-high都是数值范围,因此age前无须加$。

value score low-59="不及格" other="及格";

创建输出格式score

当输入值≤59时,输出为“不及格”;

其余输出为“及格”;

由于low-59等为数值,因此score前不加$。

invalue lxfmt 1-4=_same_ 99=.;

创建输入格式lxfmt

当输入值为1~4时,保持原有值不变;

当输入值为99时,变为“.”

由于1~4和“.”仍然是数值或者缺失值,因此lxfmt前不加$。

PROC FORMAT过程相关推荐

  1. ojbk的sas proc 过程之proc format

    sas数据输出输入格式很多,但有时候变量的输入输出格式想根据自己的要求来,这时候用proc format就好了: 例子: 创建数据集名称为a: data a; input id$ sex height ...

  2. PROC UNIVARIATE过程

    EDA(探索性数据分析)最常用的过程步之一就是PROC UNIVARIATE. 首先先看一个最简单的PROC UNIVARIATE程序: PROC UNIVARIATE DATA=SASHELP.FI ...

  3. 查找重复值和删除重复值,排序——PROC SORT 过程

    基本格式: DATA = data-set    对哪个数据集进行排序 OUT = data-set      把排序后的数据输出到指定数据集中,此时原数据依然保留.                 ...

  4. SAS过程步常用语句

    一.print过程 print过程可以打印一个SAS数据集中的全体或部分观测值,还可以打印数 值变量的综合或部分和. print过程中经常使用的语句有: proc print [选择项]; var 变 ...

  5. 描述性统计过程PROC MEANS 和PROC FREQ

    目录 一.数值型描述性统计:PROC MEANS 1.基本格式: 2.options: 3.statistic-keywords: 3.语句 BY: CLASS ​VAR ​OUTPUT语句 二.字符 ...

  6. sas univariate 结果解释_SAS:SAS 常用过程之 统计描述过程proc univariate

    from:http://blog.sina.com.cn/s/blog_5f049388010170ab.html FROM :http://blog.163.com/qiaozhanwen@126/ ...

  7. SAS:SAS 常用过程之 统计描述过程proc univariate

    from:http://blog.sina.com.cn/s/blog_5f049388010170ab.html FROM :http://blog.163.com/qiaozhanwen@126/ ...

  8. SAS learning_4: 统计报表制作(1)——PROC TABULATE

    一. PROC TABULATE 1.基本形式: PROC TABULATE;CLASS classification-variable-list;TABLE page-dimention, row- ...

  9. PROC REPORT基础

    1 PROC REPORT语法 PROC REPORT data= SAS-data-set options ; COLUMNS variable_1 -. variable_n; DEFINE va ...

  10. Intel汇编语言程序设计学习-第五章 过程-下

    5.3.3  库测试程序 测试程序#1:整数I/O 该测试程序把输出文本的颜色改为蓝底黄字,然后以十六进制数显示七个数组的内容,最后提示用户输入一个有符号整数,再分别以十进制.十六进制和二进制格式重复 ...

最新文章

  1. C 中 static 的常见作用
  2. 今天的雪糕格外好吃!
  3. 商城报表系统html5,关于html5:推荐这几款主流报表产品
  4. 鲲鹏服务器php性能,对鲲鹏服务器的内存进行性能优化后的前后数据对比
  5. 需求、需求工程与需求工程师 — 3. 需求工程的构成
  6. **python基础类和对象(十二)
  7. python numba 转灰度图_Python数据预处理:Dask和Numba并行化加速!
  8. linux安装ftp后账号密码设置,CentOS 建立ftp账号(vsftpd运用安装与配置疑问 )
  9. 华为机试HJ74:参数解析
  10. HDU1576 A/B【扩展欧几里得算法+试探法】
  11. 【海康威视】WPF客户端二次开发:【8】海康SDK Dll程序集集成优化
  12. 学习方法-北大学霸(01)学习方法基础
  13. 场景文字识别论文阅读
  14. 前一个标签自动增加,后面的标签自动减小,如微信的群发功能
  15. linux远程可视化
  16. 华为云空间費用_华为云空间怎么登录,有什么用?可惜99%的人都不知道
  17. linux中使用命令启动tomcat后显示tomcat started,实际却没启动的问题
  18. Fedora9安装与设置中文输入法scim
  19. Java NIO Socket编程实例
  20. Pytorch里面多任务Loss是加起来还是分别backward?

热门文章

  1. 美版iPhone4卡贴解锁
  2. 看精神小伙是如何智斗骗子的
  3. 如何系统磁盘和raid卡的槽位对应起来
  4. linux支持vmfs文件系统吗,调整vmfs文件系统块大小
  5. 一次性计时器和间隔性计时器的实现
  6. 学习|全屏时钟|计时器APP横评
  7. Blast中文手册(5)
  8. ESP8266通过arduino IED连接巴法云(TCP创客云)
  9. lcd调色板工作原理详解
  10. 这一刻我學會了堅強、給我一雙翅膀,我会向天空去翱翔。