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 = "", dec = ".", skip = 0, nlines = 0, na.strings = "NA",
         flush = FALSE, strip.white = FALSE, quiet = FALSE)

### Arguments

`file` | the name of a file to read data values from. If the specified file is `""`, then input is taken from the keyboard (in this case input can be terminated by a blank line). Otherwise, the file name is relative to the current working directory, `getwd()`, unless it specifies an absolute path.
`what` | the type of `what` gives the type of data to be read. If `what` is a list, it is assumed that the lines of the data file are records each containing `length(what)` items (``fields'').
`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, `scan` will read to the end of `file`.
`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, `sep` can be used to specify a character which delimits fields.
`quote` | the set of quoting characters as a single character string.
`dec` | decimal point character.
`skip` | this many lines of the input file should be skipped before starting to read data values.
`nlines` | the maximum number of lines of data to be read.
`na.strings` | character string, indicating which character fields in the file should translate to missing (`NA`) values.
`flush` | logical; if `TRUE`, `scan` will flush to the end of the line after reading the last of the fields requested. This allows putting comments after the last field.

`strip.white`

vector of logical value(s) corresponding to items in the `what` argument. It is used only when `sep` has been specified, and allows the stripping of leading and trailing white space from `character` fields (`numeric` fields are always stripped).

If `strip.white` is of length 1, it applies to all fields; otherwise, if `strip.white[i]` is `TRUE` and the `i`-th field is character (because `what[i]` is), then the leading and trailing white space from field `i` is stripped.

`quiet` | logical; if `FALSE` (default), scan(.) will print a line, telling what fields have been read.

### 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 `sep` is nondefault, the fields may be quoted in the style of .csv format files where separators inside quotes (`''` or `""`) are ignored and quotes may be put inside strings by doubling them.

Keyboard entry is terminated by typing a blank line.

### See Also

`read.table` for more user-friendly reading of data matrices; `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

[Package Contents]