【发布时间】: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(),我发现它在处理大文件时比基本 Rread.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。