Вы можете сделать это с dplyr
и purrr
.
внутри which.min
. Сначала вы вычисляете количество NA в столбцах с map
(может быть столько столбцов, сколько у вас вyour data.frame. Часть keep
возвращает только те столбцы, которые на самом деле имеют NA. which.min
возвращает именованный вектор, имя которого мы берем, и передаем его функции select
dplyr
.
Я немного обрисовал код, чтобы вы могли легко увидеть, какие части принадлежат, где.
library(purrr)
library(dplyr)
df %>% select(names(which.min(df %>%
map(function(x) sum(is.na(x))) %>%
keep(~ .x > 0)
)
)
)