I have seen in several cases that while read.table()
is not able to read a tab delimited file (for example the annotation table of a microarray) returning the follo
read_table()
does fail sometime on tab sep
'ed file and setting sep='\s+'
may help assuming item in your table have no space
read.csv
is a fairly thin wrapper around read.table
; I would be quite surprised if you couldn't exactly replicate the behaviour of read.csv
by supplying the correct arguments to read.table
. However, some of those arguments (such as the way that quotation marks or comment characters are handled) could well change the speed and behaviour of the function.
In particular, this is the full definition of read.csv
:
function (file, header = TRUE, sep = ",", quote = "\"", dec = ".",
fill = TRUE, comment.char = "", ...) {
read.table(file = file, header = header, sep = sep, quote = quote,
dec = dec, fill = fill, comment.char = comment.char, ...)
}
so as stated it's just read.table
with a particular set of options.
As @Chase states in the comments below, the help page for read.table()
says just as much under Details
:
read.csv and read.csv2 are identical to read.table except for the defaults. They are intended for reading ‘comma separated value’ files (‘.csv’) or (read.csv2) the variant used in countries that use a comma as decimal point and a semicolon as field separator.
Don't use read.table
to read tab-delimited files, use read.delim
. (It is just a thin wrapper around read.table
but it sets the options to appropriate values)