Отбрасывание столбцов, где значение первой строки равно NA - PullRequest
0 голосов
/ 22 мая 2019

Допустим, у меня есть кадр данных, как показано ниже

A   B   C
NA  2   NA
1   2   3
1   NA  3
1   2   3

, и я хочу удалить столбцы с NA в первой строке (A, C)

  B  
  2  
  2   
 NA  
  2  

как мне добитьсяэтот?спасибо!

Ответы [ 2 ]

3 голосов
/ 22 мая 2019

Вы можете сделать это:

df[,!is.na(df[1,]), drop = F]

 B
1  2
2  2
3 NA
4  2
2 голосов
/ 22 мая 2019

Вот еще несколько вариантов

Использование базы R

df[!is.na(sapply(df, `[`, 1))]

Или с dplyr

library(dplyr)
df %>% select_if(~!is.na(.[1L]))
#   B
#1  2
#2  2
#3 NA
#4  2

Использование purrr вариантов

purrr::discard(df, ~is.na(.[1L]))
purrr::keep(df, ~!is.na(.[1L]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...