作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到了几个扩展名为 .sas7bdat 的 SAS 数据集文件。我在 Windows 上使用 SAS 9.3,这些文件的创建者显然使用了不同的环境和/或软件。许多文件的 var 名称包含空格和其他无效字符。即使运行 proc contents
也会引发如下错误:
ERROR: The value Person ID is not a valid SAS name.
奇怪的是,SAS Enterprise Guide 打开并显示文件时没有任何提示。
如何有效地重命名所有错误的 var 名称,以便我可以开始使用这些文件运行实际程序?
最佳答案
除了option validvarname=ANY;
,您还需要将变量名称引用为名称文字:'Person ID'n
(单引号或双引号都可以).
如果你想有效地重命名所有这些,你可以这样做:
options validvarname=any;
data have;
'Hello Var'n = 1;
'Another Var'n = 2;
x=3;
run;
data badvarnames;
set sashelp.vcolumn;
where libname='WORK' and memname='HAVE' and not nvalid(name,'v7');
validname = translate(trim(name),'_',' ');
name = cats("'",name,"'n");
run;
proc sql;
select catx(' ','rename',name,'=',validname,';') into :renamelist
separated by ' ' from badvarnames;
quit;
proc datasets lib=work;
modify have;
&renamelist;
quit;
proc contents data=have;
run;
根据其他细节(例如这可能会产生重叠变量名称的可能性),您可能需要针对这些问题调整代码。
关于sas7bdat 变量名中有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18282776/
我是一名优秀的程序员,十分优秀!