5

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

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

但我不断收到错误消息:

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

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

4

1 回答 1

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))
于 2012-12-10T20:00:38.290 回答