删除行ff包

lpc*_*rro 5 r ff ffbase

一段时间以来我一直在使用ff包来处理大数据.我使用的R对象有大约130,000,000行和14列.其中两个列,温度和降水值缺少值"NA",因此我需要删除这些行以继续我的工作.我一直试图像在普通的R对象中那样做:

data<-data[!is.na(data$temp),]
Run Code Online (Sandbox Code Playgroud)

但我一直收到一个错误:

Error: vmode(index) == "integer" is not TRUE
Run Code Online (Sandbox Code Playgroud)

有没有人能够删除ffdf对象中的行?我很感激任何帮助.

小智 7

在ff中无法基于逻辑ff_vector建立索引,您需要提供ff整数的向量.这就是错误消息试图告诉您的内容.所以你可以这样做子集

require(ffbase)
idx <- !is.na(data$temp)
idx <- ffwhich(idx, idx == TRUE)
data <- data[idx, ]
Run Code Online (Sandbox Code Playgroud)

或(使用ffbase的6.3版本)

require(ffbase)
data <- subset(data, !is.na(temp))
Run Code Online (Sandbox Code Playgroud)