【问题标题】:read.csv crashes RStudioread.csv 使 RStudio 崩溃
【发布时间】:2020-07-07 12:05:16
【问题描述】:

帮我弄清楚我做错了什么!

我有大约 20 个 .csv 文件(产品供稿)在线。我曾经能够把它们全部拿来。但是现在,如果我获取的数量超过一两个,它们就会使 R 崩溃。文件大小约为 50K 行 / 30 列。

我猜这是内存问题,但我在另一台计算机上尝试过,结果完全相同。 可能是文件中的某些格式使 R 使用了太多内存吗?或者它可能是什么?

如果我运行其中一个,一切都很好。有时两个。三,它几乎肯定会崩溃

a <- read.csv("URL1")

b <- read.csv("URL2")

c <- read.csv("URL3")

我尝试过指定各种内容,例如:

d <- read.csv("URL4",skipNul=TRUE,sep=",",stringsAsFactors=FALSE,header=TRUE)

我不断收到这条消息:

R 会话中止。 R 遇到致命错误。 会话已终止。

我们有一些商业软件,我可以毫无问题地获取相同的文件,所以文件应该没问题。 而且我的脚本每天运行两次,连续几个月没有出现问题

R 版本 3.6.1

平台:x86_64-apple-darwin15.6.0(64 位)

【问题讨论】:

  • 您是否尝试过检查您可以使用object.size(x) 读取的某些文件的大小?此外,您可以尝试使用 data.table 包中的 fread(),我发现它在处理大文件时比基本 R read.csv() 表现更好
  • Something 改变了,如果你能弄清楚是什么,这将有助于解决问题。如果你直接跳到URL4,它会崩溃吗?我看到你放了 RStudio 标签——它相关吗?您是否只在 RStudio 中看到问题,但它在命令行上有效?如果您只是将它们保存到磁盘,这些文件有多少 MB 或 GB?文件是如何编码的?
  • 抱歉@eleventhend 建议使用 data.table 库中的 fread() 代替 og read.csv() 的响应缓慢。谢谢 :) 文件大小为 9-12mb,我有大约 20 个
  • 我突然遇到了同样的问题。昨天我的代码运行良好,今天它一直在 1 个 csv 文件上崩溃。我使用了 readr read_csv2,它会自动将其转换为 tibble。按照@humane-arts 的建议拆分此程序似乎可以解决问题。使用 R 版本 4.0.3 和 4.0.5,文件大小 248mb,内存 16gb。

标签: r csv rstudio read.csv


【解决方案1】:

我也遇到过这个问题,但使用 read_csv()。我还没有弄清楚确切的原因是什么,但我最好的猜测是尝试读取一个文件并将该文件同时写入一个变量对于内存或 CPU 来说太多了。

出于这个猜测,我尝试了这种方法,它对我来说非常有效:

library(dplyr)

a <- read.csv("URL1") %>% as_tibble()

# you can use other data types instead of tibble. that is just my example.

整个想法是通过使用管道将读取过程与写入过程分开。这确保了一个必须在下一个开始之前完成。

【讨论】:

  • 这对我不起作用。 Rstudio 仍然崩溃。 @eleventhend 建议从 data.table 库中尝试 fread() ,这对我有用。
  • 它对我有用(也请参阅问题评论)。不幸的是,我无法确定确切的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 2021-04-19
  • 1970-01-01
  • 1970-01-01
  • 2017-12-04
  • 2018-07-12
相关资源
最近更新 更多