You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于末尾三子字符串创建SAS自定义字符格式?

实现基于子字符串的SAS自定义格式

当然可以实现这种自定义格式,核心思路是利用SAS格式定义中的函数式匹配,直接提取字符值的最后三位来映射对应的月份缩写,不用逐个列举所有开头字母的组合。

具体实现代码

你可以直接在格式定义里用SUBSTR函数提取后缀进行匹配:

proc format;
    value $month_format
        /* 提取最后三位字符做匹配,适配任意前缀 */
        substr(__, length(__) - 2) = '001' = 'JAN'
        substr(__, length(__) - 2) = '002' = 'FEB'
        /* 可继续扩展其他月份映射,比如003='MAR'、004='APR'等 */
        other = 'UNKNOWN';
run;

关键逻辑说明

  • _代表当前待格式化的字符值,length(__) - 2计算出最后三位的起始位置,通过substr提取末尾三位。
  • 这种写法无需枚举所有前缀组合,不管前面是A、B、C还是其他任意字符,只要最后三位符合规则,就会自动匹配对应的月份缩写。

测试验证代码

data test_data;
    input code $;
    format code $month_format.;
    datalines;
A001
B001
X002
Y003
ABC001
;
run;

proc print data=test_data;
run;

测试结果里,A001、B001、ABC001都会显示为JAN,X002显示为FEB,Y003显示为UNKNOWN(若未添加003的映射规则)。

内容的提问来源于stack exchange,提问作者Sproodle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:01:18