удалить строки из пакета

С некоторых пор я использую пакет ff для работы с большими данными. Объект R, с которым я работал, имеет около 130 000 000 строк и 14 столбцов. В двух из этих столбцов, «Температура» и «Осадки», отсутствуют значения «NA», поэтому мне нужно удалить эти строки, чтобы продолжить работу. Я пытался сделать это, как в обычном объекте R:

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

Но я продолжаю получать сообщение об ошибке:

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

Кто-нибудь смог удалить строки в объекте ffdf? Буду признателен за любую помощь.


person lpchaparro    schedule 10.12.2012    source источник


Ответы (1)


Индексирование на основе логического ff_vector невозможно в ff, вам необходимо указать вектор целых чисел ff. Это то, что сообщение об ошибке пытается сказать вам. Таким образом, вы можете сделать подмножество следующим образом

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

или (используя версию 6.3 ffbase)

require(ffbase)
data <- subset(data, !is.na(temp))
person Community    schedule 10.12.2012
comment
Я только что увидел ваш ответ, большое спасибо за вашу помощь. Я проверю это и посмотрю, как оно идет. - person lpchaparro; 20.12.2012