Releases: Snoopy1866/Descriptive-Statistics-Macro
Releases · Snoopy1866/Descriptive-Statistics-Macro
v1.6.4
v1.6.3
v1.6.2
v1.6.1
v1.6.0
- ca83a9d (cross_table) 新增宏程序 cross_table,用于生成交叉表
- 0c20879 (qualify_xxx) 支持指定
MISSING
系列参数 #31 - 994629a (qualify_xxx) 新增参数 TOTAL,用于统计所有指定分类的合计结果 #32
- 5ad26cc (qualify_multi, quantify_multi) 修复了当参数
GROUPBY
指定了排序方向时,假设检验无法进行的问题 - f160adf (quantify_multi) 修复了在输出数据集的 item 列显示的多余的引号的问题
- 3961351 (qualify) 修复了无法对参数
BY
指定 format 中的某些不存在于数据集中的分类名称进行重命名的问题 #29 - 6b953ed (quantify) 优化参数
STAT_NOTE
的调用方式 #33 - c7a0f04 (cross_table) 优化参数
ROWCAT
,COLCAT
的调用方式 #34 - 4337b8d 说明文档结构优化
v1.5.2
v1.5.1
Bug Fix
- a06d25e (qualify_multi) 未指定参数
GROUPBY
导致未创建用于输出变量标签的宏变量 #21 - 7858c54 (qualify, quantify) 首次调用指定参数
stat_format
导致出错 #12 - 5cc3e5f (qualify, quantify) 存在别名的统计量的输出格式未同步修改 #19
Perf
Docs
- fa6d347 优化帮助文档结构,可在参数说明中直接跳转到具体示例
⚠ 自 v1.5.0 开始,%desc_coun 不再进行功能更新和 Bug 修复,未来将由 %qualify_strata 取代。
v1.5.0
1.4.7
Bug Fix
Perf
补充说明
本次更新优化了当参数 LABEL
, INDENT
, SUFFIX
需要指定包含特殊字符的字符串时的传参方式,具体以 LABEL
举例如下:
- 参数包含
%
,&
时:
label = '%&'
label = "%&"
label = '处方剂量体积(%)'
但以下两种传参方式会引发错误:
label = "处方剂量体积(%)"
label = "处方剂量体积(%nrstr(%%))"
这是因为双引号内部的字符会被 macro processor 解析,而单引号内部的字符不会。尽管后者使用了 %nrstr(%%)
对 %
进行屏蔽,但只是编译阶段进行屏蔽,宏内部执行到 PROC SQL
时,仍然会试图对 %
后面的字符进行解析。
- 参数包含
'
,"
时:
label = "'"
label = '"'
但以下两种看似比较自然的传参方式会引发错误:
label = """"
label = ''''
尽管在 DATA 步中,字符串中的连续两个引号被视为一个引号,但这一规则在宏编程中并不适用,尝试以上述两种方式传递参数将导致宏程序提前结束。
此外,如果引号内含有与引号相同的字符,例如:
label = "%nrstr(%")"
label = '%nrstr(%')'
这两种传参方式也会导致宏程序提前结束。这是因为宏程序内部使用了以下正则表达式对参数进行检查:
^(\x22[^\x22]*\x22|\x27[^\x27]*\x27)$
这限制了含有与外围引号相同字符的字符串作为参数的传入。