Премахване на редове с всички или някои NA (липсващи стойности) в data.frame
Искам да премахна редовете в тази рамка от данни, които:
По-долу е примерната ми рамка от данни: а) съдържа NA
във всички колони.
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
В общи линии бих искал да получа рамка от данни, подобна на следната.
gene hsap mmul mmus rnor cfam
2 ENSG00000199674 0 2 2 2 2
6 ENSG00000221312 0 1 2 3 2
б) съдържа NA
само в някои колони, за да мога да получа и този резултат:
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
Проверете също
complete.cases
:na.omit
е по-хубав за просто премахване на всичкиNA
's.complete.cases
позволява частична селекция чрез включване само на определени колони от рамката с данни:Вашето решение не може да работи. Ако държите да използвате
is.na
, тогава трябва да направите нещо подобно:но използването на
complete.cases
е доста по-ясно, а и по-бързо.Опитайте с
na.omit(your.data.frame)
. Що се отнася до втория въпрос, опитайте се да го публикувате като друг въпрос (за по-голяма яснота).Предпочитам следния начин за проверка дали редовете съдържат NA: