如何在SAS中重命名列:删除变量名前的shoe.前缀
SAS去除字段名
shoe.前缀的实现方法 方法1:手动重命名(适合你当前字段少的场景)
你的需求里只有5个带前缀的字段,直接用数据步的RENAME语句处理即可,代码示例:
/* 支持带特殊字符的变量名,确保可以正常识别带.的字段 */ options validvarname=any; /* 替换下方的<你的原表名>、<你要生成的新表名>为实际表名 */ data <你要生成的新表名>; set <你的原表名>; rename 'shoe.description'n = description 'shoe.color'n = color 'shoe.size'n = size 'shoe.reviews'n = reviews 'shoe.price'n = price; run;
ID、store、URL三个字段没有前缀,不需要额外处理,会自动保留在输出表中。
方法2:动态批量重命名(适合带shoe.前缀的字段数量多的场景)
如果后续遇到带前缀的字段有几十上百个的情况,可以通过SAS字典表自动生成重命名规则,无需手动逐个写字段:
options validvarname=any; proc sql noprint; /* 自动匹配所有带shoe.前缀的字段,生成重命名语句 */ select cats("'",name,"'n=",scan(name,2,'.')) into :rename_rule separated by ' ' from dictionary.columns where libname = 'WORK' /* 临时表默认库为WORK,永久库替换为你的库名 */ and memname = '<你的原表名全大写>' /* SAS字典表存储的表名为全大写,此处需传入大写的原表名 */ and name like 'shoe.%'; quit; /* 调用自动生成的规则完成重命名 */ data <你要生成的新表名>; set <你的原表名>; rename &rename_rule.; run;
内容的提问来源于stack exchange,提问作者tech bitz
相关产品推荐
相关产品推荐

