章节
5.1 Adding Labels to Your Variables 71
5.2 Using Formats to Enhance Your Output 73
5.3 Regrouping Values Using Formats 76
5.4 More on Format Ranges 78
5.5 Storing Your Formats in a Format Library 79
5.6 Permanent Data Set Attributes 80
5.7 Accessing a Permanent SAS Data Set with User-Defined Formats 82
5.8 Displaying Your Format Definitions 83
5.1 Adding Labels to Your Variables
用 LABEL 语句给给变量创建 label. Labels 长度不超过 256 个字符.
libname learn 'c:\books\learning'; data learn.test_scores; length ID $ 3 Name $ 15; input ID $ Score1-Score3; label ID = 'Student ID' Score1 = 'Math Score' Score2 = 'Science Score' Score3 = 'English Score'; datalines; 1 90 95 98 2 78 77 75 3 88 91 92 ;
在 print 上述结果时,label 也会输出出来:the results of PROC MEANS
如果在 DATA 步中添加 label,则 label 会一直对相应的变量有效;如果在 PROC 步中添加 label, 则 lebel 只对该 procedure 有效。
5.2 Using Formats to Enhance Your Output
使用 PROC FORMAT 创建自定义格式。
图1 原始数据格式
proc format; value $gender 'M' = 'Male' 'F' = 'Female' ' ' = 'Not entered' other = 'Miscoded'; value age low-29 = 'Less than 30' 30-50 = '30 to 50' 51-high = '51+'; value $likert '1' = 'Strongly disagree' '2' = 'Disagree' '3' = 'No opinion' '4' = 'Agree' '5' = 'Strongly agree'; run;
VALUE 语句创建自定义格式,对于字符型变量,前面加 $ 符号。第一个创建的 format 是 $gender, format name 可以是任意名字(不超过8个字符),这里叫做 gender 只是便于记忆。数据中,Gender 的值是以 M, F 存储的,format $gender 让 M 展示为 Male, F 展示为 Female, 缺失值展示为 Not entered. 关键词 other 使得除 M,F, missing value 以外的值展示为 Miscoded.
第二个创建的 format 是 age. 它聚合了不同的年龄值并显示为3组。关键词 LOW and HIGH 分别表示年龄最小的非缺失和最大的非缺失值。[the keywords LOW and HIGH refer to the lowest nonmissing value and the highest value, respectively]
第三个创建的 format 是 $likert, 分别将 1-5 表示为5个字符串。
Format 并不改变数据存储的原始值,只改变输出格式。
110