我正在使用此代码:
LibraryName.Bla_&SomeDate._&AnotherDate.;
创建动态数据集名称。代码产生例如:
LibraryName.Bla_2016-10-29_2016-11-12
SAS不喜欢。我该怎么做才能解决这个问题?我猜这是一个有效的名字:
LibraryName.Bla_2016_10_29_2016_11_12
答案 0 :(得分:2)
一个选项名为literal:
LibraryName."Bla_&SomeDate._&AnotherDate."n;
那应该允许你使用它。可能或可能不是一个好的想法,但它是可能的。
如果您更喜欢使用普通的SAS名称,可以在%sysfunc
电话中进行处理。如果您只有-
而且希望它们_
那么容易:
%let somedate=2016-10-29;
%let anotherdate=2016-11-12;
%let datasetvar = %sysfunc(translate(Bla_&somedate._&anotherdate.,_,-));
%put &=datasetvar.;
如果你有其他角色,可能会更复杂,视情况而定;您可以使用sas函数nvalid
来查看它是否是合法的变量名称(它或多或少是与数据集相同的规则集,或者'成员',名称)示例