前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAS Format:让数据更美观、更有意义的利器[返璞归真004]

SAS Format:让数据更美观、更有意义的利器[返璞归真004]

作者头像
归海刀刀
发布2023-11-26 14:56:23
3170
发布2023-11-26 14:56:23
举报
文章被收录于专栏:归海刀刀归海刀刀
SAS

—金陵夜寂凉风发,独上高楼望吴越。

白云映水摇空城,白露垂珠滴秋月。

01

SAS format:让数据更美观、更有意义的利器

什么是SAS format?

SAS format是一种用于显示或写入变量值的规则,它可以改变变量值在输出中的外观,但不改变变量值本身。SAS format分为两种来源:一种是标准的SAS format,由SAS系统提供;另一种是用户自定义的format,由用户通过PROC FORMAT过程创建。

SAS format分为四种类别:字符、日期和时间、ISO 8601和数值。每种类别下有多种格式可供选择,具体可以参考SAS官方文档(https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/a001263753.htm)。

如何使用SAS format?

使用SAS format有两种方式:一种是用FORMAT语句在DATA步或PROC步中与变量永久关联;另一种是用PUT语句或其他函数在输出中临时使用。

用FORMAT语句与变量关联

FORMAT语句的一般形式如下:

代码语言:javascript
复制
FORMAT variable-1 <. . . variable-n > < format > <DEFAULT= default-format >;

其中,

  • variable-1 <. . . variable-n > 是指定要与格式关联的一个或多个变量。
  • format 是指定要与变量关联的格式名称。
  • DEFAULT= default-format 是指定一个临时的默认格式,用于显示没有在FORMAT语句中列出的变量。例如:
代码语言:javascript
复制
data test;
  input name $ age height weight;
  datalines;
Alice 25 165 55
Bob 30 180 75
Charlie 35 175 80
;
run;

proc print data=test;
  format name $10. age 3. height comma5. weight comma6.2;
run;

输出结果如下:

name

age

height

weight

Alice

25

165

55.00

Bob

30

180

75.00

Charlie

35

175

80.00

从输出结果可以看出,

  • name变量使用了$10.格式,表示它是一个字符变量,并且占10个字符宽度。
  • age变量使用了3.格式,表示它是一个数值变量,并且占3个数字宽度。
  • height变量使用了comma5.格式,表示它是一个数值变量,并且占5个数字宽度,并且添加了千位分隔符。
  • weight变量使用了comma6.2格式,表示它是一个数值变量,并且占6个数字宽度,并且保留两位小数,并且添加了千位分隔符和小数点。用PUT语句或其他函数临时使用 PUT语句或其他函数(如PUT、PUTN、PUTC等)可以在输出中临时使用SAS format来显示或写入变量值。这种方式不会改变数据集中的描述信息,也不会影响其他步骤中对变量的引用。例如:
代码语言:javascript
复制
data _null_;
  set test;
  put name $10. 'is' age comma3. 'years old.';
run;

输出结果如下:

Alice is 25 years old.

Bob is 30 years old.

Charlie is 35 years old.

从输出结果可以看出,

  • name变量使用了$10.格式来显示字符数据,并且占10个字符宽度。
  • age变量使用了comma3.格式来显示数值数据,并且添加了千位分隔符。SAS format有什么用处?SAS format有以下几点用处:可以使变量值更易于阅读和理解 通过使用合适的SAS format,我们可以使变量值在输出中更加美观、清晰和有意义。例如,
  • 我们可以给数值添加千位分隔符、小数点、百分号等符号来增加可读性。
  • 我们可以给日期、时间和日期时间添加斜杠、破折号、冒号等符号来增加可读性。
  • 我们可以给字符数据添加引号、括号等符号来增加可读性。
  • 我们可以根据不同的场景选择不同的显示方式,例如货币、电话号码、邮政编码等。可以节省存储空间和提高效率 由于SAS format不改变变量值本身,只改变显示或写入时的外观,因此不需要额外的存储空间或计算时间。这样既节省了资源,又提高了效率。可以方便地对变量值进行分类或分组 通过使用用户自定义的format,我们可以给不同的数值范围赋予不同的标签,从而实现分级或分段的效果。例如,
代码语言:javascript
复制
proc format;
  value grade
    low -< 60 = 'F'
    60 -< 70 = 'D'
    70 -< 80 = 'C'
    80 -< 90 = 'B'
    90 - high = 'A';
run;

data test;
  input name $ score;
  datalines;
Alice 85
Bob 65
Charlie 95
;
run;

proc print data=test;
  format score grade.;
run;

输出结果如下:

name

score

Alice

B

Bob

D

Charlie

A

从输出结果可以看出,成绩变量的值被替换为相应的等级标签,从而实现了分类或分组的效果。

总结

SAS format是一种用于显示或写入变量值的规则,它有四种类别:字符、日期和时间、ISO 8601和数值。SAS format有两种来源:一种是标准的SAS format,由SAS系统提供;另一种是用户自定义的format,由用户通过PROC FORMAT过程创建。SAS format有三点用处:可以使变量值更易于阅读和理解;可以节省存储空间和提高效率;可以方便地对变量值进行分类或分组。

尊敬的读者,首先感谢您对本篇文章的关注和阅读。在此,本小编想要说明的是,以上所述内容都是经过笔者认真整理和撰写的,但限于个人能力和知识水平等因素,难免存在疏漏或错误之处。如有不当之处,敬请包涵并指正,本小编将虚心接受您的批评与建议,并严谨修正文章。再次感谢您对本篇文章的支持与厚爱。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 归海刀刀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SAS format:让数据更美观、更有意义的利器
    • 什么是SAS format?
      • 如何使用SAS format?
        • 用FORMAT语句与变量关联
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档