如何在 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 中执行其他常见任务: