Movatterモバイル変換


[0]ホーム

URL:


rdrr.io

scan: Read Data Values

scanR Documentation

Read Data Values

Description

Read data into a vector or list from the console or file.

Usage

scan(file = "", what = double(), nmax = -1, n = -1, sep = "",     quote = if(identical(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 = "", allowEscapes = FALSE,     fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

Arguments

file

the name of a file to read data values from. If thespecified file is"", then input is taken from the keyboard(or whateverstdin() reads if input is redirected orR is embedded).(In this case input can be terminated by a blank line or an EOFsignal,Ctrl-D on Unix andCtrl-Z on Windows.)

Otherwise, the file name is interpretedrelative to thecurrent working directory (given bygetwd()),unless it specifies anabsolute path.Tilde-expansion is performed where supported.When runningR from a script,file = "stdin" can be used torefer to the process'sstdin file stream.

This can be a compressed file (seefile).

Alternatively,file can be aconnection,which will be opened if necessary, and if so closed at the end ofthe function call. Whatever mode the connection is opened in,any of LF, CRLF or CR will be accepted as the EOL marker for a lineand so will matchsep = "\n".

file can also be a complete URL. (For the supported URLschemes, see the ‘URLs’ section of the help forurl.)

To read a data file not in the current encoding (for example aLatin-1 file in a UTF-8 locale or conversely) use afile connection setting itsencoding argument(orscan'sfileEncoding argument).

what

the type ofwhat gives the type of data tobe read. (Here ‘type’ is used in the sense oftypeof.) The supported types arelogical,integer,numeric,complex,character,raw andlist. Ifwhat is a list, it isassumed that the lines of the data file are records each containinglength(what) items (‘fields’) and the list componentsshould have elements which are one of the first six (atomic)types listed orNULL, see section ‘Details’ below.

nmax

the maximum number of data values to be read, or ifwhat is a list, the maximum number of records to be read. Ifomitted or not positive or an invalid value for an integer(andnlines is not set to a positive value),scan willread to the end offile.

n

integer: the maximum number of data values to be read, defaulting tono limit. Invalid values will be ignored.

sep

by default, scan expects to read ‘white-space’delimited input fields. Alternatively,sep can be used tospecify a character which delimits fields. A field is alwaysdelimited by an end-of-line marker unless it is quoted.

If specified this should be the empty character string (the default)orNULL or a character string containing just one single-bytecharacter.

quote

the set of quoting characters as a single characterstring orNULL. In a multibyte locale the quoting charactersmust be ASCII (single-byte).

dec

decimal point character. This should be a character stringcontaining just one single-byte character. (NULL and azero-length character vector are also accepted, and taken as thedefault.)

skip

the number of lines of the input file to skip beforebeginning to read data values.

nlines

if positive, the maximum number of lines of data to be read.

na.strings

character vector. Elements of this vector are to beinterpreted as missing (NA) values. Blank fields arealso considered to be missing values in logical, integer, numericand complex fields. Note that the test happensafter white space is stripped from the input, sona.strings values may need their own white space stripped in advance.

flush

logical: ifTRUE,scan will flush to theend of the line after reading the last of the fields requested.This allows putting comments after the last field, but precludesputting more that one record on a line.

fill

logical: ifTRUE,scan will implicitly addempty fields to any lines with fewer fields than implied bywhat.

strip.white

vector of logical value(s) corresponding to itemsin thewhat argument. It is used only whensep hasbeen specified, and allows the stripping of leading and trailing‘white space’ fromcharacter fields (numeric fieldsare always stripped). Note: white space inside quoted strings isnot stripped.

Ifstrip.white is of length 1, it applies to all fields;otherwise, ifstrip.white[i] isTRUEand thei-th field is of mode character (becausewhat[i] is)then the leading and trailing unquoted white space from fieldi isstripped.

quiet

logical: ifFALSE (default), scan() will print aline, saying how many items have been read.

blank.lines.skip

logical: ifTRUE blank lines in theinput are ignored, except when countingskip andnlines.

multi.line

logical. Only used ifwhat is a list. IfFALSE, all of a record must appear on one line (but more thanone record can appear on a single line). Note that usingfill = TRUEimplies that a record will be terminated at the end of a line.

comment.char

character: a character vector of length onecontaining a single character or an empty string. Use"" toturn off the interpretation of comments altogether (the default).

allowEscapes

logical. Should C-style escapes such as\n be processed (the default) or read verbatim? Note that ifnot within quotes these could be interpreted as a delimiter (but notas a comment character).

The escapes which are interpreted are the control characters\a, \b, \f, \n, \r, \t, \v and octal andhexadecimal representations like\040 and\0x2A. Anyother escaped character is treated as itself, including backslash.Note that Unicode escapes (starting\u or\U: seeQuotes) are never processed.

fileEncoding

character string: if non-empty declares theencoding used on a file (not a connection nor the keyboard) so thecharacter data can be re-encoded. See the ‘Encoding’ sectionof the help forfile, and the ‘R DataImport/Export Manual’.

encoding

encoding to be assumed for input strings. If thevalue is"latin1" or"UTF-8" it is used to markcharacter strings as known to be in Latin-1 or UTF-8: it is not usedto re-encode the input (seefileEncoding).See also ‘Details’.

text

character string: iffile is not supplied and this is,then data are read from the value oftext via a text connection.

skipNul

logical: should nuls be skipped when reading characterfields?

Details

The value ofwhat can be a list of types, in which casescan returns a list of vectors with the types given by thetypes of the elements inwhat. This provides a way of readingcolumnar data. If any of the types isNULL, the correspondingfield is skipped (but aNULL component appears in the result).

The type ofwhat or its components can be one of the sixatomic vector types orNULL (seeis.atomic).

‘White space’ is defined for the purposes of this function asone or more contiguous characters from the set space, horizontal tab,carriage return and line feed. It does not include form feed norvertical tab, but in Latin-1 and Windows 8-bit locales (but not UTF-8)'space' includes the non-breaking space"\xa0".

Empty numeric fields are always regarded as missing values.Empty character fields are scanned as empty character vectors, unlessna.strings contains"" when they are regarded as missingvalues.

The allowed input for a numeric field is optional whitespace followedeitherNA or an optional sign followed by a decimal orhexadecimal constant (see NumericConstants), orNaN,Inf orinfinity (ignoring case). Out-of-range valuesare recorded asInf,-Inf or0.

For an integer field the allowed input is optional whitespace,followed by eitherNA or an optional sign and one or moredigits (0-9): all out-of-range values are converted toNA_integer_.

Ifsep is the default (""), the character\in a quoted string escapes the following character, so quotes may beincluded in the string by escaping them.

Ifsep 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 bydoubling them. However, ifsep = "\n" it is assumedby default that one wants to read entire lines verbatim.

Quoting is only interpreted in character fields and inNULLfields (which might be skipping character fields).

Note that sincesep is a separator and not a terminator,reading a file byscan("foo", sep = "\n", blank.lines.skip = FALSE)will give an empty final line if the file ends in a linefeed and not ifit does not. This might not be what you expected; see alsoreadLines.

Ifcomment.char occurs (except inside a quoted characterfield), it signals that the rest of the line should be regarded as acomment and be discarded. Lines beginning with a comment character(possibly after white space with the default separator) are treated asblank lines.

There is a line-length limit of 4095 bytes when reading from theconsole (which may impose a lower limit: see ‘An Introductionto R’).

There is a check for a user interrupt every 1000 lines ifwhatis a list, otherwise every 10000 items.

Iffile is a character string andfileEncoding isnon-default, or if it is a not-already-open connection with anon-defaultencoding argument, the text is converted to UTF-8and declared as such (and theencoding argument toscanis ignored). See the examples ofreadLines.

Embedded nuls in the input stream will terminate the field currentlybeing read, with a warning once per call toscan. SettingskipNul = TRUE causes them to be ignored.

Value

ifwhat is a list, a list of the same length and same names (asany) aswhat.

Otherwise, a vector of the type ofwhat.

Character strings in the result will have a declared encoding ifencoding is"latin1" or"UTF-8".

Note

The default formulti.line differs from S. To read one recordper line, useflush = TRUE andmulti.line = FALSE.(Note that quoted character strings can still include embedded newlines.)

If number of items is not specified, the internalmechanism re-allocates memory in powers of two and so could use upto three times as much memory as needed. (It needs both old and newcopies.) If you can, specify eithern ornmax wheneverinputting a large vector, andnmax ornlines wheninputting a large list.

Usingscan on an open connection to read partial lines can losechars: use an explicit separator to avoid this.

Havingnul bytes in fields (including\0 ifallowEscapes = TRUE) may lead to interpretation of thefield being terminated at thenul. They not normally presentin text files – seereadBin.

References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)The New S Language.Wadsworth & Brooks/Cole.

See Also

read.table for more user-friendly reading of datamatrices;readLines to read a file a line at a time.write.

Quotes for the details of C-style escape sequences.

readChar andreadBin to read fixed orvariable length character strings or binary representations of numbersa few at a time from a connection.

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 onescan("ex.data", what = list("","","")) # flush is F -> read "7"scan("ex.data", what = list("","",""), flush = TRUE)unlink("ex.data") # tidy up## "inline" usagescan(text = "1 2 3")

What can we improve?

R Package Documentation

Browse R Packages

We want your feedback!

Note that we can't provide technical support on individual packages. You should contact the package authors for that.

 
Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, readEmbedding Snippets.

Close

[8]ページ先頭

©2009-2026 Movatter.jp