SAS 数据集标签、变量名标签和变量值标签

时间:2022-03-31 21:30:25

在任何数据库的使用过程中,为了能更加有效方便的使用自己的数据,我们就需要给它们加上必要的标签或注释,本文仅介绍SAS中标签的使用方法,包括数据集标签、变量名标签和变量值标签。 

示例数据集: 
data a; 
input year sales cost; 
cards; 
1981 12132 11021 
1982 19823 12928 
1983 16982 14002 
1984 18432 14590 

proc print data=a; 
run; 
结果如下: 
The SAS System 22:03 Sunday, April 25, 2004 2 
Obs year sales cost profit 
1 1981 12132 11021 1111 
2 1982 19823 12928 6895 
3 1983 16982 14002 2980 
4 1984 18432 14590 3842 
我们可以看到没有任何标签!!!! 
1.数据集标签: 
data a (label='my dataset'); 
  input year sales cost; 
  cards; 
1981 12132 11021 
1982 19823 12928 
1983 16982 14002 
1984 18432 14590 

proc contents; 
run; 
结果如下: 
 Data Set Name: WORK.A 
    Member Type: DATA 
    Engine: V8 
    Created: 22:53 Monday, April 26, 1993 
   Last Modified: 22:53 Monday, April 26, 1993 
   Protection: 
    Data Set Type: 
    Label: my dataset 
/*出现了变量集标签-红色部分*/ 
2.变量标签:我们可以使用label语句在data step和proc step命名变量标签,二者的区别是前者的标签可以在任何使用该数据集的procedures中使用,而后者仅在当前步有效。 
data b; 
  set a; 
  label year=”年份” 
  sales=”销售额” 
  cost=”价格”; 
run; 
PROC CONTENTS DATA=b; 
RUN; 
结果如下: 
--Alphabetic List of Variables and Attributes----- 
# Variable Type Len Pos Label 
--------------------------------------------- 
3 cost Num 8 16 价格 
4 profit Num 8 24 
2 sales Num 8 8 销售额 
1 year Num 8 0 年份 
/*结果中出现了变量标签*/ 
3.变量值标签: 
变量值标签的创建需要两步: 
 1.用value语句在PROC FORMAT;中创建标签格式 
 2.把创建的标签格式用FORMAT语句赋给相应的变量,该FORMAT语句可以用在proc or data steps。 
 
PROC FORMAT; 
 VALUE yearl 1981="m" 
   1982="n" 
     1983=”o” 
     1984=”p” 

**字符型变量在定义值标签时,要在标签格式前面加$*; 
 
PROC FREQ DATA=b; 
FORMAT year yearl.;  
 table year; 
 RUN; 
4.在SQL中使用标签
proc sql; 
  create table tem ( 
  name char(30) format=$30. label='姓名', 
  sex num format=1. label='性别' 
); 
quit;