注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

数据挖掘

学习数据挖掘

 
 
 

日志

 
 

SAS:PROC FORMAT介绍  

2013-05-27 17:32:51|  分类: SAS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

SAS:PROC FORMAT介绍

原文:http://www.jtben.com/document/573035

一、主要作用

PROC FORMAT是用来定义数值或符号文字的输出格式。 能够使我们在观看输出的Output时更易于了解及阅读。在使用此程序时,请注意,这个程序只是"定义"并不会自动输出至Output,我们必须用PROC FORMAT宣告的输出格式,配合以下两个程序步骤(Step)之相对应的宣告值使用之:在DATA中的INPUT和FORMAT叙述句。在PROC中的FORMAT叙述句。

上述的意思是:我们先以PROC FORMAT定义出输出的格式,然后再以DATA和PROC 呼叫已定义好的输出格式。

二、PROC FORMAT的程序格式及用法

其程序格式如下:其程序格式如下:

PROC FORMAT option; PROC FORMAT option;

VALUE name(options)

range1=label1

range2=label2

...;

PROC FORMAT option; PROC FORMAT option;

此处的option只有一项,即LIBRARY=libref。 此选项是为了要将之后宣告的输出格式设为永久数据集,以供日后使用。 若未指名此项,输出格式将" 暂 "存于WORK次目录中。同一个程序中,只须以FORMAT叙述句呼叫出即可。 若必须于不同的程序中使用同样的输出格式,则可建立一个永久格式。 举例如下:

LIBNAME save 'c:\lin'; LIBNAME save 'c:\lin';

PROC FORMAT LIBRARY=save; PROC FORMAT LIBRARY=save;

VALUE SEXFMT 1='男' 2='女'; VALUE SEXFMT 1='男' 2='女';

第一行:先选定c:\lin存放永久格式档,且代称为save。

第二行:将其后所设定的格式永久存放在c:\lin之中。

第三行:定义输出的格式。

VALUE name(options)

(1) name是指定的格式名称,其命名规则与SAS数据文件的文件名和变量名之命名规则相同(不过超过8个字符也可以使用),但若为文字变量,则在最前面加上"contentquot;即可。请注意,在之后的FORMAT叙述句呼叫时,需在此格式名称后紧接一个句点,即"."。

(2) options 有四个:

i)MIN=n,设定格式的最小宽度。

ii)MAX=n,设定格式的最大宽度。

iii)DEFAULT,以系统内定值为最长的描述格式或数值标签的长度。

iv)FUZZ=n,给予一个范围n,只要数值未超出范围,程序仍能给定卷标,反之无法给定。range1=label1 range2=label2 ...;

当我们的变量值在此数值范围内时, range1 ,则以适当的标签, label1 ,取代。如上述例子中最后一行:

VALUE SEXFMT 1='男' 2='女';

由上可知,SEXFMT是前述之输出格式名称,而只要变量值等于1 ,则我们以" 男 "取代, 等于2 ,以" 女 "取代。而"男"和"女"是文字变数,当然就要以单引号括起来。另外一例:

VALUE SCOREFMT 0-<60='不及格' OTHER='及格';

其中0-<60表示0到小于60分的范围。而OTHER表将未界定的范围全归于此标签下,在此例中是指60分以上的数值以"及格"取代。

三、程序范例引用

在这里我们引用了PROC FREQ中的程序及数据。在这里我们引用了PROC FREQ中的程序及资料。 我们将所需程序行于下:我们将所需程序行于下:

--------------------------------------------------------------------------------

PROC FORMAT;

VALUE GENDERFMT 1='Male' 2='Female';

VALUE AGEFMT 1-25='25 and below' 26-30='26-30' 31-35='31-35' 36-40='36-40' 41-45='41-45' 46-50='46-50' 51-55='51-55' 56-60='56-60'

OTHER='60 and above';

VALUE DEGREEFMT 1='BA' 2='Working on MB' 3='Oversea MB' 4='Local MB' 4='Local MB' 5='Working on PH.D' 6='Oversea PH.D' 6='Oversea PH.D' 7='Local PH.D' 8='Otherwise';

VALUE EXPFMT 0-5='0-5' 6-10='6-10' 11-15='11-15' 16-20='16-20'

21-25='21-25' 26-30='26-30' 31-35='31-35';

VALUE FREQFMT 0='0' 1-2='1-2' 3-4='3-4' 5-6='5-6' 7-8='7-8';

DATA A1;

INFILE 'CONTEST.TXT';

INPUT OBS GENDER AGE DEGREE EXP FREQ;

PROC PRINT;

FORMAT GENDER GENDERFMT.

AGE AGEFMT.

DEGREE DEGREEFMT.

EXP EXPFMT.

FREQ FREQFMT.;

RUN;

--------------------------------------------------------------------------------

我们将PROC FREQ的程序做了一些修改。红色字体部分是我们这次的重点。 我们可以发现在上述的程序中, PROC FORMAT一口气宣告了五种输出格式。而且在程序末端以PROC PRINT列出此DATA中的所有变数,且以FORMAT叙述句将五个变数以前面宣告的输出格式输出于Output上。

四、范例程序输出结果

在跑完上述的范例之后,我们的Output会出现如下的画面(以下是Output中的第一页并不是全部的Output):

SAS:PROC FORMAT介绍 - 小坏 - Do  What

在上面的Output视窗中我们可以看到,五个变数都已经用之前所宣告的输出格式取代了。 如此,我们是不是更容易且更快知道所有人的个人信息了。如此,我们是不是更容易且更快知道所有人的个人资讯了。

  评论这张
 
阅读(3184)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017