Merge SAS groupformat的工作原理

Merge SAS groupformat的工作原理,merge,sas,Merge,Sas,我在SAS官方网站上找到了这个 使用BY语句中的GROUPFORMAT选项确保 1.在数据步骤中同时使用FORMAT语句和BY语句时,格式化值用于对观察结果进行分组 2.FIRST.variable和LAST.variable由变量的格式化值指定 它用来说明groupformat用法的示例是 proc format; value range low -55 = 'Under 55' 55-60 = '55 to 60' 60-65 = '60 t

我在SAS官方网站上找到了这个

使用BY语句中的GROUPFORMAT选项确保
1.在数据步骤中同时使用FORMAT语句和BY语句时,格式化值用于对观察结果进行分组
2.FIRST.variable和LAST.variable由变量的格式化值指定

它用来说明
groupformat
用法的示例是

proc format;
   value range
      low -55 = 'Under 55'
      55-60   = '55 to 60'
      60-65   = '60 to 65'
      65-70   = '65 to 70'
      other   = 'Over 70';
run;

proc sort data=class out=sorted_class;
   by height;
run;

data _null_;
   format height range.;
   set sorted_class;
      by height groupformat;
   if first.height then
      put 'Shortest in ' height 'measures ' height:best12.;
run;
但我不明白这个示例如何显示
groupformat
“确保”
当在数据步骤中同时使用FORMAT语句和BY语句时,
格式化值用于对观察结果进行分组

查看有无
groupformat语句的结果:

4805
4806   data _null_;
4807      format height range.;
4808      set sorted_class;
4809         by height groupformat;
4810      if first.height then
4811         put 'Shortest in ' height 'measures ' height:best12.;
4812   run;

Shortest in Under 55 measures 51.3
Shortest in 55 to 60 measures 56.3
Shortest in 60 to 65 measures 62.5
Shortest in 65 to 70 measures 65.3
Shortest in Over 70 measures 72
NOTE: There were 19 observations read from the data set WORK.SORTED_CLASS.
NOTE: DATA statement used (Total process time):
      real time           0.05 seconds
      cpu time            0.01 seconds


4813
4814   data _null_;
4815      format height range.;
4816      set sorted_class;
4817         by height ;
4818      if first.height then
4819         put 'Shortest in ' height 'measures ' height:best12.;
4820   run;

Shortest in Under 55 measures 51.3
Shortest in 55 to 60 measures 56.3
Shortest in 55 to 60 measures 56.5
Shortest in 55 to 60 measures 57.3
Shortest in 55 to 60 measures 57.5
Shortest in 55 to 60 measures 59
Shortest in 55 to 60 measures 59.8
Shortest in 60 to 65 measures 62.5
Shortest in 60 to 65 measures 62.8
Shortest in 60 to 65 measures 63.5
Shortest in 60 to 65 measures 64.3
Shortest in 60 to 65 measures 64.8
Shortest in 65 to 70 measures 65.3
Shortest in 65 to 70 measures 66.5
Shortest in 65 to 70 measures 67
Shortest in 65 to 70 measures 69
Shortest in Over 70 measures 72
NOTE: There were 19 observations read from the data set WORK.SORTED_CLASS.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds

从这里可以明显看出,
GROUPFORMAT
根据格式化的值生成by group。如果没有它,您将使用高度的原始值。

这非常有用。我应该先运行程序w/和w/o
groupformat
。输出的差异说明了这一点。