R 中 read.csv() 和 read.csv2() 之间的区别

Posted

技术标签:

【中文标题】R 中 read.csv() 和 read.csv2() 之间的区别【英文标题】:Difference between read.csv() and read.csv2() in R 【发布时间】:2014-05-23 02:24:32 【问题描述】:

在 R 中,read.csv() 和 read.csv2() 有什么区别

官方文档说,

在各种欧洲语言环境中,逗号字符用作 小数点,应使用函数 read.csv2 代替

这是什么意思。我在表面上看不出有什么不同。任何人都可以给出一个具体的例子来进一步澄清它。

【问题讨论】:

我问这个问题的原因是我不知道该用哪一个 这取决于。查看您尝试读取的文件,这些值是如何分隔的? 【参考方案1】:

它们(几乎)是相同的功能 - 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, ...)
<bytecode: 0x5e3fa88>
<environment: namespace:utils>
> read.csv2
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, ...)
<bytecode: 0x5c0a330>
<environment: namespace:utils>

来自文档(参见?read.table):

read.csvread.csv2read.table 相同,但默认值除外。它们用于读取“逗号分隔值”文件 (‘.csv’) 或 (read.csv2) 在使用逗号作为小数点和分号作为字段分隔符的国家/地区使用的变体。

【讨论】:

谢谢,这很有帮助。到目前为止我没有看源代码。 逗号既可以是字段分隔符sep = ",",也可以是十进制分隔符dec = ","。但是当然这些字段会被 csv 读写器引用。无论如何,这样的文件仍然是“真实的”csv(逗号分隔)。

以上是关于R 中 read.csv() 和 read.csv2() 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

使用 read.csv() 导入时 R 中止

R数据导入导出: read.table()和read.csv()的区别

如何在 R 中的 read.csv(或其他读取函数)中“关闭”科学记数法?

R语言data.table导入数据实战:fread函数和read.csv函数时间效率对比

为啥 R 在使用 read.csv() 时会使用这么多内存?

试图读取存储在csv文件中的R中的推文