DATA Step, Macro, Functions and more

simple variable naming question

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 105
Accepted Solution

simple variable naming question

Hello,

I know it is possible to name a variable with a dash as: "variable-name"

But when the dash is followed by a number I am having issues, i.e.: "beta3_-1"

This is not being recognized as a variable although it is the name of a column in my dataset, using single quotes is not working. Could anyone give me a suggestion on how I can reference this variable please? I'm sure it's a simple thing, I don't mean to waste anyone's time but I haven't been able to find a simple answer.

Thanks a lot,

-Ryan


Accepted Solutions
Solution
‎02-21-2013 05:26 PM
Super User
Posts: 19,869

Re: simple variable naming question

Posted in reply to AllSoEasy

By default, in Base SAS, you can't name a variable with a -.  You can label a variable with dashes though.

Or you can set options validvarname=any;

And then name them however you want. But then you ahve to refer to them as "beta3_-1" instead of beta3_1.

View solution in original post


All Replies
PROC Star
Posts: 7,492

Re: simple variable naming question

Posted in reply to AllSoEasy

A dash is NOT allowed in a variable name unless you have the option validvarname=any set.

Solution
‎02-21-2013 05:26 PM
Super User
Posts: 19,869

Re: simple variable naming question

Posted in reply to AllSoEasy

By default, in Base SAS, you can't name a variable with a -.  You can label a variable with dashes though.

Or you can set options validvarname=any;

And then name them however you want. But then you ahve to refer to them as "beta3_-1" instead of beta3_1.

Frequent Contributor
Posts: 105

Re: simple variable naming question

Thanks a lot guys, simple enough.

Regular Contributor
Posts: 227

Re: simple variable naming question

Posted in reply to AllSoEasy

you can use the quoted-string qualifier N

after a variable name that contains special characters:

options validvarname=any;

data _null_;

attrib "var-A"n        length = 8

       'var B'n        length = 8

       'var! Really?'n length = 8;

array Whiz(*) _numeric_;

do I = 1 to dim(Whiz);

   Whiz(I) = I**I;

   end;

  put (_all_) (=);

run;

'var-A'n=1 'var B'n=4 'var! Really?'n=27 I=4

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 185 views
  • 3 likes
  • 4 in conversation