Rev 27447 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{read.table}\alias{read.table}\alias{read.csv}\alias{read.csv2}\alias{read.delim}\alias{read.delim2}\title{Data Input}\description{Reads a file in table format and creates a data frame from it, withcases corresponding to lines and variables to fields in the file.}\usage{read.table(file, header = FALSE, sep = "", quote = "\"'", dec = ".",row.names, col.names, as.is = FALSE, na.strings = "NA",colClasses = NA, nrows = -1,skip = 0, check.names = TRUE, fill = !blank.lines.skip,strip.white = FALSE, blank.lines.skip = TRUE,comment.char = "#")read.csv(file, header = TRUE, sep = ",", quote="\"", dec=".",fill = TRUE, \dots)read.csv2(file, header = TRUE, sep = ";", quote="\"", dec=",",fill = TRUE, \dots)read.delim(file, header = TRUE, sep = "\t", quote="\"", dec=".",fill = TRUE, \dots)read.delim2(file, header = TRUE, sep = "\t", quote="\"", dec=",",fill = TRUE, \dots)}\arguments{\item{file}{the name of the file which the data are to be read from.Each row of the table appears as one line of the file. If it doesnot contain an \emph{absolute} path, the file name is\emph{relative} to the current working directory,\code{\link{getwd}()}. Tilde-expansion is performed where supported.Alternatively, \code{file} can be a \code{\link{connection}}, whichwill be opened if necessary, and if so closed at the end of thefunction call. (If \code{stdin()} is used, the prompts for linesmay be somewhat confusing. Terminate input with an EOFsignal, \code{Ctrl-D} on Unix and \code{Ctrl-Z} on Windows.)\code{file} can also be a complete URL.}\item{header}{a logical value indicating whether the file contains thenames of the variables as its first line. If missing, the value isdetermined from the file format: \code{header} is set to \code{TRUE}if and only if the first row contains one fewer field than thenumber of columns.}\item{sep}{the field separator character. Values on each line of thefile are separated by this character. If \code{sep = ""} (thedefault for \code{read.table}) the separator is \dQuote{white space},that is one or more spaces, tabs or newlines.}\item{quote}{the set of quoting characters. To disable quotingaltogether, use \code{quote=""}. See \code{\link{scan}} for thebehaviour on quotes embedded in quotes.}\item{dec}{the character used in the file for decimal points.}\item{row.names}{a vector of row names. This can be a vector givingthe actual row names, or a single number giving the column of thetable which contains the row names, or character string giving thename of the table column containing the row names.If there is a header and the first row contains one fewer field thanthe number of columns, the first column in the input is used for therow names. Otherwise if \code{row.names} is missing, the rows arenumbered.Using \code{row.names = NULL} forces row numbering.}\item{col.names}{a vector of optional names for the variables.The default is to use \code{"V"} followed by the column number.}\item{as.is}{the default behavior of \code{read.table} is to convertcharacter variables (which are not converted to logical, numeric orcomplex) to factors. The variable \code{as.is}controls this conversion. Its value is either a vector of logicals(values are recycled if necessary), or a vector of numeric orcharacter indices which specify which columns should not beconverted to factors.Note: to suppress all conversions including those of numericcolumns, set \code{colClasses = "character"}.}\item{na.strings}{a vector of strings which are to be interpreted as\code{\link{NA}} values. Blank fields are also considered to bemissing values.}\item{colClasses}{character. A vector of classes to be assumed forthe columns. Recycled as necessary. If this is not one of theatomic vector classes (logical, integer, numeric, complex andcharacter), there needs to be an \code{as} method forconversion from \code{"character"} to the specified class, or\code{NA} when \code{\link{type.convert}} is used. NB: \code{as} isin package \pkg{methods}.}\item{nrows}{the maximum number of rows to read in. Negative valuesare ignored.}\item{skip}{the number of lines of the data file to skip beforebeginning to read data.}\item{check.names}{logical. If \code{TRUE} then the names of thevariables in the data frame are checked to ensure that they aresyntactically valid variable names. If necessary they are adjusted(by \code{\link{make.names}}) so that they are, and also to ensurethat there are no duplicates.}\item{fill}{logical. If \code{TRUE} then in case the rows have unequallength, blank fields are implicitly added. See Details.}\item{strip.white}{logical. Used only when \code{sep} hasbeen specified, and allows the stripping of leading and trailingwhite space from \code{character} fields (\code{numeric} fieldsare always stripped). See \code{\link{scan}} for further details,remembering that the columns may include the row names.}\item{blank.lines.skip}{logical: if \code{TRUE} blank lines in theinput are ignored.}\item{comment.char}{character: a character vector of length onecontaining a single character or an empty string. Use \code{""} toturn off the interpretation of comments altogether.}\item{\dots}{Further arguments to \code{read.table}.}}\value{A data frame (\code{\link{data.frame}}) containing a representation ofthe data in the file. Empty input is an error unless \code{col.names}is specified, when a 0-row data frame is returned: similarly givingjust a header line if \code{header = TRUE} results in a 0-row data frame.This function is the principal means of reading tabular data into \R.}\details{If \code{row.names} is not specified and the header line has one lessentry than the number of columns, the first column is taken to be therow names. This allows data frames to be read in from the format inwhich they are printed. If \code{row.names} is specified and doesnot refer to the first column, that column is discarded from such files.The number of data columns is determined by looking at the first five linesof input (or the whole file if it has less than five lines), or fromthe length of \code{col.names} if it is specified andis longer. This could conceivably be wrong if \code{fill} or\code{blank.lines.skip} are true, so specify \code{col.names} if necessary.\code{read.csv} and \code{read.csv2} are identical to\code{read.table} except for the defaults. They are intended forreading \dQuote{comma separated value} files (\file{.csv}) or the variantused in countries that use a comma as decimal point and a semicolonas field separator. Similarly, \code{read.delim} and\code{read.delim2} are for reading delimited files, defaulting to theTAB character for the delimiter. Notice that \code{header = TRUE} and\code{fill = TRUE} in these variants.The rest of the line after a comment character is skipped; quotesare not processed in comments. Complete comment lines are allowedprovided \code{blank.lines.skip = TRUE}; however, comment lines priorto the header must have the comment character in the first non-blankcolumn.As from \R 1.9.0 quoted fields with embedded newlines are supportedexcept after a comment character.}\note{The columns referred to in \code{as.is} and \code{colClasses} includethe column of row names (if any).Less memory will be used if \code{colClasses} is specified as one ofthe five atomic vector classes.Using \code{nrows}, even as a mild over-estimate, will help memoryusage.Using \code{comment.char = ""} will be appreciably faster.\code{read.table} is not the right tool for reading large matrices,especially those with many columns: it is designed to read\emph{data frames} which may have columns of very different classes.Use \code{\link{scan}} instead.}\seealso{The \emph{R Data Import/Export} manual.\code{\link{scan}}, \code{\link{type.convert}},\code{\link[utils]{read.fwf}} for reading \emph{f}ixed \emph{w}idth\emph{f}ormatted input;\code{\link{write.table}};\code{\link{data.frame}}.\code{\link{count.fields}} can be useful to determine problems withreading files which result in reports of incorrect record lengths.}\references{Chambers, J. M. (1992)\emph{Data for models.}Chapter 3 of \emph{Statistical Models in S}eds J. M. Chambers and T. J. Hastie, Wadsworth \& Brooks/Cole.}\keyword{file}\keyword{connection}