BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
devarayalu
Fluorite | Level 6

Can any one help in this?

data one;

input a b;

datalines;

1 2

2 3

3 4

;

run;

data two;

chk=open('one');

chk1=varnum(chk, 'LINENO');

if chk1 ne 0 then do;

set one;

if LINENO ne 1;

end;

run;

Here the Do group is getting processed and giving note in the log that "Variable LINENO is uninitialised"

Thank you in adnvance.

1 ACCEPTED SOLUTION

Accepted Solutions
Haikuo
Onyx | Level 15

data _null_;

chk=open('one');

chk1=varnum(chk, 'LINENO');

if chk1 ne 0 then call execute(' data two; set one; if lineno ne 1; run;');

run;

View solution in original post

4 REPLIES 4
Tom
Super User Tom
Super User

SAS compiles the whole data step. So even though the line that references the variable LINENO is inside of a DO loop that will never execute SAS will still create the variable in the program data vector.  Hence the warning about the variable never being initialized.

devarayalu
Fluorite | Level 6


ok thank you and can you please also guide me how to get rid of the message. without changing the if condition

Haikuo
Onyx | Level 15

data _null_;

chk=open('one');

chk1=varnum(chk, 'LINENO');

if chk1 ne 0 then call execute(' data two; set one; if lineno ne 1; run;');

run;

devarayalu
Fluorite | Level 6

Thank you so much for the prompt answer

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to choose a machine learning algorithm

Use this tutorial as a handy guide to weigh the pros and cons of these commonly used machine learning algorithms.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 4 replies
  • 1720 views
  • 0 likes
  • 3 in conversation