SAS 中是否有一种简单的方法可以将字符串转换为 SAS 安全名称以用作列名称?
ie.
Rob Penridge ----> Rob_Penridge
$*@'Blah@* ----> ____Blah__
我正在使用一个proc transpose
然后想要在转置后使用重命名的列。
EDIT:8年随访……现在有更好的方法吗?我觉得我以前看到了更好的方法,但现在我正在努力寻找任何文档/示例,因为我需要这样做。
proc transpose
只要您设置,就会采用这些名称而不做任何修改options validvarname=any;
如果您想随后使用这些列,可以使用 NLITERAL 函数来构造可用于引用它们的命名文字:
options validvarname=any;
/* Create dataset and transpose it */
data zz;
var1 = "Rob Penridge";
var2 = 5;
output;
var1 = "$*@'Blah@*";
var2 = 100;
output;
run;
proc transpose
data = zz
out = zz_t;
id var1;
run;
/* Refer to the transposed columns in the dataset using NLITERAL */
data _null_;
set zz;
call symput(cats("name", _n_), nliteral(var1));
run;
data blah;
set zz_t;
&name1. = &name1. + 5;
&name2. = &name2. + 200;
run;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)