📜  在SAS中格式化数据集

📅  最后修改于: 2021-01-08 14:18:00             🧑  作者: Mango

格式化数据集

有时,我们倾向于将分析后的数据表示为不同于数据集中原始格式的格式。例如,在一个文本变量中,所有文本值都用小写字母表示,而我们想用大写字母表示这些值。或者我们需要在包含价格信息的变量中添加小数位。为此,SAS提供了FORMAT语句。

FORMAT语句包含SAS内置格式。我们可以将FORMAT语句应用于内置格式,而将PROCFORMAT应用于用户定义的格式。

句法:

FORMAT variable name format name;

哪里,

  • 格式:这是一个FORMAT语句,指示格式化的操作。
  • 变量名称:这是需要格式化的变量的名称。
  • 格式名称:这是要应用于变量的SAS内置格式的名称。

例:

让我们考虑一下包含组织员工详细信息的SAS数据集员工。在这里,我们需要以大写形式显示员工的姓名,为此,我们使用的是SAS内置格式FORMAT语句upcase9。

DATA employee; 

Input empid name$ age weight salary;
FORMAT name$ upcase9.;
datalines;  
1 Akash 22 64 22000
6 Jaya 55 63 23500
2 Vinita 34 68 33000
7 Kumar 43 64 27000  
4 Anita 29 65 53000
5 Taufik 21 45 32000  
8 Boby 32 71 25000
3 Ankita 40 69 42000  
;  
run;
   PROC PRINT DATA = employee; 
run;

在SAS Studio中执行以上代码:

输出:

从输出中可以看到,所有雇员的姓名都转换为大写。

使用PROC FORMAT

PROC FORMAT用于格式化用户定义的数据。我们可以根据需要格式化数据值或观察值。在下面给出的示例中,我们同时应用了内置和用户定义的格式语句。

内置格式upcase9用于将小写文本转换为大写。对于用户定义的格式,我们将变量dept的值从缩写更改为扩展形式,即IT =信息技术,HR =人力资源。

DATA employee; 
   INPUT empid name $ salary dept $; 

DATALINES; 
1 Akash 22000 IT
6 Jaya 23500 HR  
2 Vinita 33000 IT  
7 Kumar 27000 IT 
4 Anita 53000 HR  
5 Taufik 32000 IT  
8 Boby 25000 IT   
3 Ankita 42000 IT 
;
proc format;
value $DEP 'IT' = 'Information Technology'
      'HR'= 'Human Resources';
RUN;
   PROC PRINT DATA = employee; 
format name $upcase9. DEPT $DEP.; 
RUN;

在SAS Studio中执行以上代码:

输出:

从输出中可以看到,所有雇员的姓名都被转换为大写,部门的缩写也被转换为扩展形式。