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

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

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
  • 1903 views
  • 0 likes
  • 3 in conversation