Date: Sun, 28 Nov 2010 14:27:08 -0500
Reply-To: Nat Wooding <nathani@VERIZON.NET>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Nat Wooding <nathani@VERIZON.NET>
Subject: Re: the line holder @
Content-Type: text/plain; charset="US-ASCII"
Try running the following code
/* the input file is
1 11 22
2 222 333
Filename indd 'C:\park\max.txt';
infile indd missover;
input x @;
input y @;
It appears to support your interpretation of the events. The third input
statement reads the third value on the first line in the input file. Then,
the data step cycles and SAS reads the next input line.
There is one more point that could be made which would be if we wrote
Input x @;
Input / y @;
The first @ would be effectively ignored.
From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of
Sent: Sunday, November 28, 2010 2:06 PM
Subject: the line holder @
Consider this saying about @ from the book by Cody and Smith (5th, P361):
(The line holder @ tells SAS to) not move the pointer to the next record
until an INPUT statement without a trailing @ is reached
or until the next iteration of the DATA step begins.
I think the first "until" clause is misleading.
It reads like once SAS met the INPUT statement without the trailing @,
the line pointer would move to the next record
and the input statement would read that new record.
Do you agree?
Anyway, I guess the first "until" clause should be replaced by something
... until an INPUT statement without a trailing @ HAS BEEN EXECUTED ...
Well, this sounds more like an English language question.
Since I am not a native English speaker, your comments will help me clear my
Thanks a lot.