一段时间以来我一直在使用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)