2012-12-10 22 views
5

Da un po 'di tempo utilizzo il pacchetto ff per lavorare con i big data. L'oggetto R con cui ho lavorato ha circa 130.000.000 di righe e 14 colonne. Due di queste colonne, Temperatura e Precipitazione hanno valori mancanti "NA", quindi ho bisogno di cancellare quelle righe per andare avanti con il mio lavoro. Ive cercato di farlo come lo farei in un normale oggetto R:delete rows ff package

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

Ma io continuo a ricevere un errore:

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

Qualcuno ha potuto eliminare le righe in un ffdf oggetto? Apprezzerei qualsiasi aiuto.

risposta

7

L'indicizzazione basata su un ff_vector logico non è possibile in ff, è necessario fornire un vettore di interi ff. Questo è ciò che il messaggio di errore sta cercando di dirti. Così si può fare la subsetting come questo

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

o (utilizzando la versione 6.3 di ffbase)

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

Ho appena visto la tua risposta, grazie mille per il vostro aiuto. Lo controllerò e vedrò come va. – lpchaparro