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-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

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