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

2023-11-26 14:56:23 浏览数 (2)

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有三点用处:可以使变量值更易于阅读和理解;可以节省存储空间和提高效率;可以方便地对变量值进行分类或分组。

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

0 人点赞