转义字符在SAS中解释为数组

时间:2017-08-14 07:24:59

标签: sas

我正在使用SAS大学版。

我希望有一个名为"年龄(年)的变量"而不是" Age_years"对于以下数据集。我理解"()"将被解释为数组,而我需要将其作为变量的一部分。

data data;
  input Name $ Age_years Gender $;
  datalines;
    Dino 6 male
    Rita 5 female
    Aurora 6 female
    Joko 7 male
  ;
run;

我访问以下行时的确切错误是"错误:引用的未声明数组:年龄。 错误:变量年龄尚未声明为数组。"

 data data;
  set data;
  Age(years)=Age_years;
 run;

我已经检查过转义这个括号字符的可能性,以便它不会被解释为数组,如下所示:Special Characters in SAS但是%符号无助于转义()字符。我怎么能在SAS中做到这一点?

2 个答案:

答案 0 :(得分:0)

好的,我错过了其他SO链接的一些提示。 SAS: how to use the table column with special character $

我是如何通过以下

解决这个问题的
option validvarname=any;
data data;
'Age(years)'n = Age_years;
run

我不明白是什么" n"以上实际上意味着,因为如果我删除它,年龄(年)将意味着字符串。

答案 1 :(得分:0)

你可以称之为' n'修饰语。您可以在引用的文字的末尾附加一些内容,以指定SAS应如何对待它:

'my variable'n将被视为名为'我的变量'

的变量

'14AUG2017'd将被视为代表今天日期

的数字

'14AUG2017:09:53:00'dt将被视为代表今天日期和时间的数字

'49'x将被视为字母A,此处由其十六进制值指定。

......以及其他我可能已经忘记的事。

请注意,使用非SAS有效名称不被视为良好做法。

编辑:link to SAS support