我有一些来自SAS数据集中的关系数据库的结果。所有变量名都以数字开头,所以我无法重命名或在数据步骤中访问它们。有没有什么方法可以重新命名它们或访问它们,而无需再次从RDBMS中获取数据?重命名变量名称以SAS中的数字开头
0
A
回答
0
乔给出的答案有一些有用的信息,但我实际上发现SAS有一个(有点自动的)方法来处理这个问题。当您从RDBMS查询数据时,SAS实际上会替换任何以第一个字符为下划线的数字开头的列名称。所以1994年第四季度成为_994Q4。因此,您可以简单地访问数据。
但是,SAS会将RDBMS的原始名称保留为变量标题,所以它将在表视图模式下显示为1994Q4(或其他)。
1
options validvarname=any;
将允许您访问它们,甚至使用的数据集 - 您可以在"variable name"n
附上一个“非法”变量名(行情再后来的N)做出name literal
这相当于一个变量名称(如在Oracle中使用"variable name"
)。
如果你想使它们更容易使用,您连接到RDBMS之前,你可以这样做
proc sql;
select catx(' ','rename',name,'=',cats('_',name,';')) into :renamelist separated by ' '
from dictionary.columns
where libname='WORK' and memname='DATASETNAME'; *perhaps AND ANYDIGIT(substr(name,1,1)) as well;
quit;
proc datasets lib=work;
modify datasetname;
&renamelist;
quit;
你也可以尝试设置options validvarname=v7;
,因为它有可能SAS会为你做这个(视情况),如果你有这样的设置(并且目前不)。
相关问题
- 1. 表格变量名称可以以数字字符开头吗?
- 2. 如何解决名称本身以数字开头的变量名称?
- 3. SAS名称与空白重命名表
- 4. 重命名Postgresql中以@开头的列
- 5. MVC3命名以数字开头的列
- 6. Python模块名称以数字开头
- 7. 在SAS中如何重命名数据中的变量?
- 8. sas中的动态变量名称
- 9. 我可以命名一个以数字开头的C#名称空间吗?
- 10. 重命名数据框中的变量名称序列
- 11. csh脚本错误:变量名称必须以字母开头
- 12. 如何处理以randomForest中的数字开头的变量名称包
- 13. 重命名以'?column?'开头的列
- 14. 重命名SAS变量以添加下划线
- 15. 列名以数字开头?
- 16. 名称不能以''字符开头
- 17. 名称不能以/ r字符开头
- 18. 如何重命名一个尊重名称范围的变量?
- 19. 定义以数字开头的函数名称(在Python 3中)?
- 20. 以前缀'the'开头的变量名称
- 21. SAS:动态设置变量名称
- 22. SAS - 从变量创建宏名称
- 23. 在geokettle中重命名字段名称
- 24. 命名以m_开头的成员变量符合javabean样式?
- 25. 如何在sas中动态地重命名变量?
- 26. 文本框名称不能以SSRS2008中的数字开头?
- 27. 数据库名称是否可以以数字开头?
- 28. 以数字开头的cookie名称可以吗?
- 29. 在SAS中使用数字列名称
- 30. 使用SAS宏变量在PROC中创建变量名称SQL
[这](http://stackoverflow.com/questions/18282776/sas7bdat-with-spaces-in-var-names)是我问过一阵子的问题。答案将同样适用于您的问题。 – Jeff
啊,我确实认为我回答了类似的问题 - 是的,基本上是同样的解决方案,而且是更彻底的答案;) – Joe