【问题标题】:read.csv stops reading at row 523924 even thouhg the file has 799992 rows即使文件有 799992 行,read.csv 也会在第 523924 行停止读取
【发布时间】:2013-07-30 19:16:00
【问题描述】:

知道为什么 R 会在文件读完之前停止读取文件吗?

我可以在 excel 中打开文件,它显示完整的 799992。R 仅读取文件的 65%。我已将文件保存为 Excel 中的 csv,但它没有更改 R 能够读取的行数。事实上,它每次都会在完全相同的位置停止读取。

我使用以下命令。

lem1 <- read.csv("lem1.csv", header=TRUE, sep =",")

我在一个类似的数据文件上也有同样的问题,它只读取了 57% 的文件并“正常”停止

【问题讨论】:

  • 我会查看该特定行及其周围的行...但是,如果您不分享错误和您的一些数据,我们将无能为力。
  • 您好,欢迎来到 SO。提供相关详细信息有助于解决问题。具体来说,回答:当它停止时会发生什么?它告诉你什么?数据是什么样的(实际副本优于描述)等
  • 尝试将您的文件分割成块并在您的停止点附近分段阅读。
  • data.tablefread() 函数也绝对值得研究,它比 read.table 更健壮一点,而且速度更快...
  • read.csv("lem1.csv", skip = 523923) 是做什么的?

标签: r file csv size


【解决方案1】:

如果数据包含不匹配的引号或 octothorpes(或在某些操作系统中为 cntrl-Z),则可能会发生文件读取异常终止。您有时可以通过重置 quote 和 comment.char 的默认值来获得满意的结果:

lem1 <- read.csv("lem1.csv", header=TRUE, sep =",", 
                             quote="", comment.char="")

【讨论】:

  • 感谢您的建议。文件中的下一行有问题。当我将该行移到文件末尾时,它读取了整个文件。也许有一个隐藏的行尾字符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2012-09-30
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
相关资源
最近更新 更多