如何解决SAS中FIRST.名称字面量变量未初始化的报错问题
报错原因
该提示说明SAS未将FIRST.'PROVIDER ID'n识别为BY分组对应的自动变量,反而将其判定为未定义的普通变量,常见诱因有两个:
- 未开启特殊变量名支持选项,SAS无法识别
'PROVIDER ID'n这类名称字面量语法 FIRST.前缀与名称字面量的拼接格式错误,比如FIRST.后添加了多余空格、或是错误将FIRST.也纳入了名称字面量的引号范围内
修复方案
- 先在代码开头开启允许特殊变量名的配置,确保SAS能正常解析带空格的变量名
- 修正
FIRST.前缀的使用格式,FIRST.后直接紧跟名称字面量,不要加空格,也不要把FIRST.放进引号内 - 若输入数据集
M.ORIG_0002未按PROVIDER ID排序,可在BY语句后加NOTSORTED参数(仅适用于相同分组值连续排列的场景)
修复后完整代码:
OPTIONS VALIDVARNAME=ANY; DATA M.PROV; SET M.ORIG_0002; BY 'PROVIDER ID'n; IF FIRST.'PROVIDER ID'n THEN OUTPUT M.PROV; RUN;
若不需要数据集提前排序,可将BY语句修改为:
BY 'PROVIDER ID'n NOTSORTED;
内容的提问来源于stack exchange,提问作者Manoj
相关产品推荐
相关产品推荐

