Help using Base SAS procedures

Do loop Problem

Reply
Occasional Contributor
Posts: 6

Do loop Problem

What's wrong with my do loop code?

"

data readsp;
do Method = 'A','B','C';
  do Subj = 1 to 10;
     input Score @;
     output;
  end;
end;
datalines;
250 255 256 300 244 268 301 322 256 333
267 275 256 320 250 340 345 290 280 300
1 2 3 4 5 6 7 8 9 0

;

title "List of Speed-reading Methods Test";
proc print data=readsp noobs;
run;

"

the output can only show these:

"

Method    Subj    Score

C         8       8
C         9       9
C        10       0            “

Where are the others?

Super User
Super User
Posts: 7,035

Do loop Problem

You do not tell it to goto the next line when it has finished reading the 10 values.

Add an INPUT statement after the inner loop.

data readsp;
do Method = 'A','B','C';
  do Subj = 1 to 10;
     input Score @;
     output;
  end;

   input;
end;
datalines;
250 255 256 300 244 268 301 322 256 333
267 275 256 320 250 340 345 290 280 300
1 2 3 4 5 6 7 8 9 0

;

Super User
Posts: 10,018

Re: Do loop Problem

you should add double @ to prevent point to skip to next line at next data step iteration.

data readsp;
do Method = 'A','B','C';
  do Subj = 1 to 10;
     input Score @@;
     output;
  end;
end;
datalines;
250 255 256 300 244 268 301 322 256 333
267 275 256 320 250 340 345 290 280 300
1 2 3 4 5 6 7 8 9 0
;

title "List of Speed-reading Methods Test";
proc print data=readsp noobs;
run;









Ksharp

Ask a Question
Discussion stats
  • 2 replies
  • 134 views
  • 6 likes
  • 3 in conversation