R中的FF:'recodeLevels'没有适用的方法

时间:2014-03-12 16:10:56

标签: r import-from-csv ff

我正在尝试使用read.csv.ffdf将一个巨大的(~5GB).csv文件加载到R中。命令是:

npi <- read.csv.ffdf(file="C:/Users/DSA/Dropbox/Team Shared Files/People/Ross/NPI_Parse/Zips/npi_full.csv", VERBOSE=TRUE, first.rows=10000,next.rows=100000,colClasses=NA)

该命令运行一段时间然后抛出以下错误:“没有适用于'recodeLevels'的方法应用于类的对象”c('double','numeric')。“有些搜索告诉我,我需要使用transFUN选项,但我不知道如何应用它。数据是文本和数字,我认为这可能会导致问题。如果有帮助,我可以上传csv的截图,但在LibreOffice中打开需要很长时间。

任何人都知道任何技巧吗?

1 个答案:

答案 0 :(得分:1)

来自read.csv.ffdf的文档。

transFUN:NULL或在使用FUN读取之后和进一步处理之前在每个data.frame块上调用的函数(用于过滤,转换等)

如果您的某个列从某个因素变为数字,反之亦然,请确保它是使用transFUN的因素

npi <- read.csv.ffdf(
  file="C:/Users/DSA/Dropbox/Team Shared Files/People/Ross/NPI_Parse/Zips/npi_full.csv",
  VERBOSE=TRUE, first.rows=10000,next.rows=100000, 
  transFUN=function(x){
    x$yourcolumnwiththeerror <- factor(as.character(x$yourcolumnwiththeerror))
    x
  })