| scan {base} | R Documentation |
Read Data Values
Description
Read data into a vector or list from the console or file.
Usage
scan(file = "", what = double(0), nmax = -1, n = -1, sep = "",
quote = if (sep=="\n") "" else "'\"", dec = ".",
skip = 0, nlines = 0, na.strings = "NA",
flush = FALSE, fill = FALSE, strip.white = FALSE, quiet = FALSE,
blank.lines.skip = TRUE, multi.line = TRUE, comment.char = "")
Arguments
file |
the name of a file to read data values from. If the
specified file is Otherwise, the file name is interpreted relative to the
current working directory (given by Alternatively,
|
what |
the type of |
nmax |
the maximum number of data values to be read, or if
|
n |
the maximum number of data values to be read, defaulting to no limit. |
sep |
by default, scan expects to read white-space delimited
input fields. Alternatively, |
quote |
the set of quoting characters as a single character string. |
dec |
decimal point character. |
skip |
the number of lines of the input file to skip before beginning to read data values. |
nlines |
the maximum number of lines of data to be read. |
na.strings |
character vector. Elements of this vector are to be
interpeted as missing ( |
flush |
logical: if |
fill |
logical: if |
strip.white |
vector of logical value(s) corresponding to items
in the If |
quiet |
logical: if |
blank.lines.skip |
logical: if |
multi.line |
logical. Only used if |
comment.char |
character: a character vector of length one
containing a single character or an empty string. Use |
Details
The value of what can be a list of types, in which case
scan returns a list of vectors with the types given by the
types of the elements in what. This provides a way of reading
columnar data. If any of the type is NULL, the corresponding
field is skipped (but a NULL component appears in the result).
Empty numeric fields are always regarded as missing values.
Empty character fields are scanned as empty character vectors, unless
na.strings contains "" when they are regarded as missing
values.
If sep is the default (""), the character \
in a quoted string escapes the following character, so quotes may
included in the string by escaping them.
If sep is non-default, the fields may be quoted in the style of
‘.csv’ files where separators inside quotes ('' or
"") are ignored and quotes may be put inside strings by
doubling them. However, if sep = "\n" it is assumed
by default that one wants to read entire lines verbatim.
Note that since sep is a separator and not a terminator,
reading a file by scan("foo", sep="\n", blank.lines.skip=FALSE)
will give an empty file line if the file ends in a linefeed and not it
it does not. This might not be what you expected; see also
readLines.
If comment.char occurs (except inside a quoted character
field), it signals that the rest of the line
should be regarded as a comment and be discarded. Lines beginning
with a comment character (possibly after white space) are treated
as blank lines.
Value
if what is a list, a list of the same length and same names (as
any) as what.
Otherwise, a vector of the type of what.
Note
The default for multi.line differs from S. To read one record
per line, use flush = TRUE and multi.line = FALSE.
If number of items is not specified, the internal
mechanism re-allocates memory in powers of two and so could use up
to three times as much memory as needed. (It needs both old and new
copies.) If you can, specify either n or nmax whenever
inputting a large vector, and nmax or nlines when
inputting a large list.
See Also
read.table for more user-friendly reading of data
matrices;
readLines to read a file a line at a time.
write.
Examples
cat("TITLE extra line", "2 3 5 7", "11 13 17", file="ex.data", sep="\n")
pp <- scan("ex.data", skip = 1, quiet= TRUE)
scan("ex.data", skip = 1)
scan("ex.data", skip = 1, nlines=1)# only 1 line after the skipped one
str(scan("ex.data", what = list("","",""))) # flush is F -> read "7"
str(scan("ex.data", what = list("","",""), flush = TRUE))
unlink("ex.data") # tidy up