Пакет tidyverse
подходит для следующих задач:
library(tidyverse)
Пример кадра данных:
df <- tribble(
~Length, ~Width, ~Mass, ~Date,
10.3, 3.1, 0.021, "2018-11-28",
NA, 3.3, NA, "2018-11-29",
10.5, NA, 0.025, "2018-11-30"
)
С пакетом dplyr
вы можете создать столбец идентификатора и "число NA "столбец с row_number()
и rowSums
.Конечно, если у вас уже есть столбец идентификатора строки, вы можете удалить ID = row_number()
из mutate:
df %>%
mutate(ID = row_number(), noNAs = rowSums(is.na(.)))
... приводит к ...
# A tibble: 3 x 6
Length Width Mass Date ID noNAs
<dbl> <dbl> <dbl> <chr> <int> <dbl>
1 10.3 3.1 0.021 2018-11-28 1 0
2 NA 3.3 NA 2018-11-29 2 2
3 10.5 NA 0.025 2018-11-30 3 1
..... добавление select по идентификатору и noNAs, упорядочение по noNAs (в порядке убывания):
df <- df %>%
mutate(ID = row_number(), noNAs = rowSums(is.na(.)))%>%
select(ID, noNAs) %>%
arrange(desc(noNAs))
... приводит к ...
# A tibble: 3 x 2
ID noNAs
<int> <dbl>
1 2 2
2 3 1
3 1 0
Наконец, если вы хотите отфильтроватьдля рядов с более чем 30 NA, тогда:
df %>% filter(noNAs > 30)