SAS中变量值标签的使用

文章目录

一、 Using Format to Enhance Your Output

        本次例子为《Learning SAS by Example, A Programmers Guide》第五章的内容。目前有survey数据集。需要对变量里面的值贴上适当的标签增加输出结果的可读性。

SAS中变量值标签的使用

1.1 读取survey.txt数据

        我们可以查看survey.txt数据的格式

SAS中变量值标签的使用
001 M 23 28000 1 2 1 2 3
002 F 55 76123 4 5 2 1 1
003 M 38 36500 2 2 2 2 1
004 F 67 128000 5 3 2 2 4
005 M 22 23060 3 3 3 4 2
006 M 63 90000 2 3 5 4 3
007 F 45 76100 5 3 4 3 3

        在SAS系统中进行导入txt文件

data sas.survey;
   infile 'G:\survey.txt' pad;
   input ID : $3.
         Gender :$1.
         Age
         Salary
         (Ques1-Ques5)($1.+1);
run;
proc print data = sas.survey;
id ID;
run;

        未使用 proc format 打印的结果为:

SAS中变量值标签的使用

1.2 Using PROC FORMAT to create user-defined formats

        我们使用proc format进行对每个变量设置用户自定义的格式

proc format;
value $gender 'M' = 'Male'
              'F' = 'Female'
			  ' ' = 'Not entered'
			other = 'Miscoded';

value age low-29  = 'Less than 30'
          31-50  = '30 to 50'
		  51-high = '51+';

value $likert '1' = 'Strongly disagree'
              '2' = 'Disagree'
			  '3' = 'No opinion'
			  '4' = 'Agree'
			  '5' = 'Strongly agree';

run;

        需要注意的几点:


  1. 字符型变量在定义值标签时,要在标签格式前面加上 $
  2. proc format 后面需要添加分号
  3. 每一个 value 的变量进行值标签设置时,在最后面才输入分号,比如上面的例子中 ‘M’ = ‘Male’ 后面是没有分号的,需要对下一个值进行设置时,我们回车后接着输入即可,而在 other = ‘Miscoded’ 此时我们已经输入完成,就在后面添加分号
  4. 关于 gender 的值标签的设置 ,这里给出作者比较详细的解释:
    Values for Gender are stored as M and F. Associating the $GENDER format with the variable Gender results in M displaying as Male, F displaying as Female, and missing values displayed as Not entered. The keyword other in the VALUE statement causes the text Miscoded to be printed for any characters besides M, F, or a missing value.
  5. 关于 low 和 high ,这里同样给出作者的解释:
    In the AGE format, the keywords LOW and HIGH refer to the lowest nonmissing value and the highest value, respectively.
    Note: The keyword LOW when used with character formats includes missing values.

1.3 Adding a FORMAT statement in PROC PRINT

        设置后好,我们就可以在proc print过程步中添加 format 的语句

title'Data Set SURVEY with Formatted Values';
proc print data=survey;
id ID;
var Gender Age Salary Ques1-Ques5;
format Gender $gender.
       Age    age.
	   Ques1-Ques5 $likert.
	   Salary dollar11.2;
run;

        这里说明一下,在format后的使用值标签的时候,不要忘了圆心点,如上述程序中,gender、age 和 likert 后面都是带有一个圆心点。
        打印的结果为:

SAS中变量值标签的使用

        欢迎共同学习交流~

二、参考资料

[1].《Learning SAS by Example, A Programmers Guide》
[2]. SAS中标签(Label)的使用

上一篇:大数据:从阿里数据分析岗看未来核心竞争力


下一篇:学习笔记:CentOS7学习之十三:硬盘介绍