如何在 sas 中使用 proc format(附示例)


您可以使用 SAS 中的PROC FORMAT创建数据值到数据标签的映射。

此过程使用以下基本语法:

 proc format ;
    value points_range
        25-high='High'
        15-<25='Medium'
        other ='Low';
run ;

此特定示例创建以下映射:

  • 等于25或以上的值将显示为“
  • 15 到 25 之间的值将显示为“ Medium
  • 所有其他值将显示为“

以下示例展示了如何在 SAS 中对以下数据集使用PROC FORMAT

 /*create dataset*/
data my_data;
    input team $position $points;
    datalines ;
A Guard 25
A Guard 20
A Guard 30
A Forward 25
A Forward 10
B Guard 10
B Guard 22
B Forward 30
B Forward 10
B Forward 10
B Forward 25
;
run ;

/*view dataset*/
proc print data =my_data; 

示例1:使用PROC FORMAT将值格式化为频率表中的标签

假设我们使用PROC FREQ在数据集的点列中创建值的频率表:

 /*calculate frequency of values in points column*/
proc freq data = my_data;
    tablepoints ;
run ; 

输出显示点列中每个单独值的频率。

但是,假设我们想要像这样格式化值:

  • 等于25或以上的值将显示为“
  • 15 到 25 之间的值将显示为“ Medium
  • 所有其他值将显示为“

我们可以使用PROC FORMAT来做到这一点:

 /*define formatting for points variable*/
proc format ;
value points_range
        25-high='High'
        15-<25='Medium'
        other ='Low';
run ;

/*create frequency table for points variable, using formatting defined above*/
proc freq data = my_data;
    tablepoints ;
    format points points_range. ;
run ;

频率表现在将点变量的值分组到我们使用PROC FORMAT语句指定的标签中。

示例 2:使用 PROC FORMAT 创建新变量

我们还可以使用PROC FORMAT在数据集中创建一个新变量,将数据值转换为数据标签。

以下语法显示了如何执行此操作:

 /*define formatting for points variable*/
proc format ; 
    value points_range
        25-high='High'
        15-<25='Medium' 
        other ='Low';
run ;

/*create new dataset with points_range variable*/
data new_data;
    set my_data;
    point_range = put (points, points_range. );
run ;

/*view dataset*/
proc print data = new_data; 

名为“point_range”的新变量采用低、中或高值,具体取决于“points”变量的相应值。

注意:您可以在此处找到完整的PROC FORMAT文档。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

如何在SAS中使用过程摘要
如何在 SAS 中使用 Proc Tabulate
如何在 SAS 中使用 Proc 排序规则

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注