删除行ff包

时间:2012-12-10 17:50:04

标签: r ff ffbase

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

data<-data[!is.na(data$temp),]

但我一直收到错误:

Error: vmode(index) == "integer" is not TRUE

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

1 个答案:

答案 0 :(得分:7)

基于逻辑ff_vector的索引在ff中是不可能的,您需要提供ff整数的向量。这就是错误消息试图告诉您的内容。所以你可以像这样进行子集化

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

或(使用ffbase的6.3版本)

require(ffbase)
data <- subset(data, !is.na(temp))