Rimuovere le righe con tutti o alcuni NA (valori mancanti) in data.frame
Vorrei rimuovere le linee in questo quadro di dati che:
a) contiene NA
in tutte le colonne. Di seguito il mio esempio di data frame.
gene hsap mmul mmus rnor cfam
1 ENSG00000208234 0 NA NA NA NA
2 ENSG00000199674 0 2 2 2 2
3 ENSG00000221622 0 NA NA NA NA
4 ENSG00000207604 0 NA NA 1 2
5 ENSG00000207431 0 NA NA NA NA
6 ENSG00000221312 0 1 2 3 2
Fondamentalmente, vorrei ottenere un frame di dati come il seguente.
gene hsap mmul mmus rnor cfam
2 ENSG00000199674 0 2 2 2 2
6 ENSG00000221312 0 1 2 3 2
b) contiene NA
s solo in alcune colonne, quindi posso anche ottenere questo risultato:
gene hsap mmul mmus rnor cfam
2 ENSG00000199674 0 2 2 2 2
4 ENSG00000207604 0 NA NA 1 2
6 ENSG00000221312 0 1 2 3 2
785
3
Controlla anche
complete.cases
:na.omit
è più carino per rimuovere semplicemente tutti gliNA
's.complete.cases
permette una selezione parziale includendo solo alcune colonne del dataframe:La tua soluzione non può funzionare. Se insisti ad usare
is.na
, allora devi fare qualcosa come:ma usare
complete.cases
è molto più chiaro, e più veloce.Prova
na.omit(your.data.frame)
. Per quanto riguarda la seconda domanda, prova a postarla come un'altra domanda (per chiarezza).Preferisco il seguente modo per controllare se le righe contengono dei NA: