[R] skip lines on a connection
Vadim Ogranovich
vograno at evafunds.com
Sun May 2 23:26:45 CEST 2004
> From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk]
> Sent: Saturday, May 01, 2004 11:44 PM
> You will be telling us next you think the default nmax=-1
> means to read a negative number of lines!
No, I won't. Your extrapolation is inaccurate.
> ... So reading no
> lines would mean not calling scan at all, and what would be
> the point of that?
It would mean skipping the number of lines specified in the skip
argument thus advancing the read point on the connection to where I want
it to be. I guess you wouldn't argue that seek(con, where) has no
meaning.
>
> nmax <= 0 and nlines <= 0 are ignored.
>
> Note carefully what nmax actually means, and it is not what `nlines'
> means!
I had noted that. If one reads no "data value" one reads no line, so the
two should have the same effect in the case at hand.
> Do read the documentation for scan, too, please.
I had. For your convenience this is what it says about nmax.
nmax: the maximum number of data values to be read, or if 'what' is
a list, the maximum number of records to be read. If omitted
(and 'nlines' is not set to a positive value), 'scan' will
read to the end of 'file'.
It is hard to see from the text that nmax=0 is ignored since "omitted"
means leaving it set to -1.
BTW, the paragraph regarding 'nlines' doesn't mention that nlines=0 is a
special case either.
nlines: the maximum number of lines of data to be read.
> Note that to read *lines* you do need to read every byte on
> the file to
> find the EOL marker(s) so readLines() or scan() with NULL in
> "what" are as
> good as anything. You can use them in blocks of lines, in a loop.
This is a very nice trick indeed! Just what I've been looking for.
Thank you very much,
Vadim
More information about the R-help
mailing list