Abbiamo un frame di dati da un file CSV. Il riquadro dati DF
contiene colonne che contengono valori osservati e una colonna (VaR2
) che contiene la data in cui è stata eseguita una misurazione. Se la data non è stata registrata, il file CSV contiene il valore NA
, per i dati mancanti.Sottoinsieme di righe contenenti valori NA (mancanti) in una colonna scelta di un frame di dati
Var1 Var2
10 2010/01/01
20 NA
30 2010/03/01
Vorremmo utilizzare il comando sottoinsieme per definire un nuovo frame di dati new_DF
tale che esso contenga solo le righe che hanno un valore NA'
dalla colonna (VaR2
). Nell'esempio fornito, solo la riga 2 sarà contenuta nel nuovo DF
.
Il comando
new_DF<-subset(DF,DF$Var2=="NA")
non funziona, il frame di dati risultante ha inserzioni di riga.
Se nel file CSV originale il valore NA
viene scambiato con NULL
, lo stesso comando produce il risultato desiderato: new_DF<-subset(DF,DF$Var2=="NULL")
.
Come posso far funzionare questo metodo, se per la stringa di caratteri è fornito il valore NA
nel file CSV originale?
Grazie per la vostra risposta veloce (questo è stato veloce)!Infatti, a causa del csv-delivery dei dati, i 'NA' sono valori di carattere e la tua seconda affermazione potrebbe essere molto utile. Puoi chiarire anche la tua prima affermazione? L'uso di rowSums() non è chiaro per me, dal momento che controllerò solo una particolare colonna (ci sono un sacco di colonne). Se quella particolare colonna (nell'esempio sarebbe la colonna Var2) ha una stringa di caratteri 'NA' (io la sostituirò con la tua seconda affermazione), quindi vorrei scegliere l'intera riga per far parte della nuova cornice dati . – John
@John: aggiornato. Il punto è usare is.na, ho interpretato erroneamente che volevi controllare tutte le variabili. –
dovrebbe essere 'new_DF <- DF [is.na (DF $ Var),]', cioè sembra esserci un extra '(' parentesi dopo 'DF ['? – PatrickT