一段时间以来,我一直在使用ff包来处理大数据。我使用的R对象有大约130,000,000行和14列。其中两个列,温度和降水值缺少值“NA”,因此我需要删除这些行以便继续我的工作。 我一直试图像在普通的R对象中那样做:
data<-data[!is.na(data$temp),]
但我一直收到错误:
Error: vmode(index) == "integer" is not TRUE
是否有人能够删除ffdf对象中的行? 我很感激任何帮助。
答案 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))