r - read.csv与read.table

标签 r file-io read.table read.csv

我在几种情况下看到,虽然read.table()无法读取制表符分隔的文件(例如,微阵列的注释表),但返回以下错误:

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
line xxx did not have yyy elements
read.csv()可以完美地在同一个文件上运行,没有错误。我认为read.csv()的速度也比read.table()高。

甚至更多:read.table()在读取我的文件时非常疯狂。在读取第100行时会出现此错误,但是当我在同一文件的开头之后复制并粘贴第90至110行时,仍然会出现第100 + 21行的错误(在开头复制新行)。如果该行有任何问题,为什么在开始读取粘贴的行时不报告该错误?我确认read.csv()读取相同文件没有错误。

您是否知道read.table()为什么无法读取read.csv()可以处理的文件?在任何情况下,是否有任何理由使用read.table()

最佳答案

read.csvread.table的相当薄的包装器;如果您无法通过为read.csv提供正确的参数来完全复制read.table的行为,我会感到非常惊讶。但是,其中一些参数(例如引号或注释字符的处理方式)可以很好地改变函数的速度和行为。

特别是,这是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, ...)
}

如前所述,它只是带有一组特定选项的read.table

就像@Chase在下面的注释中指出的那样,read.table()的帮助页面在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.

关于r - read.csv与read.table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828438/

相关文章:

r - 在 R 中的 ggpairs 中包装列名称文本

r - .bib 文件中的 knitr block

c - 如何通读c中的文件列表

python - 在python中逐行连接大量文件

r - 您如何将多个.txt文件读入R?

r - read.table() 和 read.csv() 中的 skipNul = TRUE 有什么作用(除了跳过/忽略嵌入的空值)?

r - 使用 purrr::map 进行递归函数调用

r - 将 boost 多精度与 RcppEigen 结合使用

c# - 即使子目录不存在,如何创建文件

r - 如何读取不同分隔符的数据?