【问题标题】:Error using ff package Error in ff(initdata = initdata, .. write error)使用 ff 包时出错 ff 中的错误(initdata = initdata,.. 写入错误)
【发布时间】:2021-11-01 10:26:56
【问题描述】:

我正在尝试加载一个 csv 文件,其中包含:517 000 行,只有 20 个变量,我正在使用 read.table.ffdf,它给出了错误:

Error in ff(initdata = initdata, length = length, levels = levels, ordered = ordered,  : 
  write error

我用了这条线:

dépenses<- read.table.ffdf(
  file="COVID-19_Expenditures_Report.csv", 
  sep=",", 
  VERBOSE=FALSE, 
  header=TRUE, 
  colClasses=NA
)

由于变量数量众多,我已经看到类似的问题具有相同的错误,但我的问题不是因为这个,因为我之前使用相同的函数成功读取了超过 20 个变量。

【问题讨论】:

    标签: r ff


    【解决方案1】:

    尝试使用 fread 的 data.table,它可以非常快速地加载您的数据,没有任何问题。

    library(data.table)
    depenses <- fread(file="COVID-19_Expenditures_Report.csv", sep=",",  header = T)
    

    【讨论】:

    • 我已经使用其他功能阅读过它,但是出于教学目的我需要使用 ff 并且它似乎不起作用,我还发现 ff 没有加载我以前加载的任何文件,似乎我在设置中更改了某些内容,但我无法弄清楚它是什么
    • 将 fill = T 添加到您的 read.table.ffdf() 并且它可以工作,但是仍然会引发 EOF 警告。尽管使用 read.table.ffdf 需要 30 多秒,但速度非常慢,而使用 fread 您可以在一秒或 2-3 秒内获得数据。 IMO 特别是出于教学目的,考虑速度可能很重要。如果有一天他们想用 10 倍的数据集将其付诸实践,那就太令人沮丧了……
    猜你喜欢
    • 2012-12-11
    • 2015-09-07
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2017-07-06
    相关资源
    最近更新 更多