Удалите столбцы из кадра данных, где ВСЕ значения являются NA

Я испытываю затруднения из-за кадра данных и не мог действительно решить тот вопрос сам:
Кадр данных имеет произвольные свойства как столбцы, и каждая строка представляет один набор данных.

Вопрос:
Как избавиться от столбцов, где для ВСЕХ строк значение является NA?

126
задан Jeromy Anglim 5 March 2015 в 05:21
поделиться

2 ответа

Попробуйте следующее:

df <- df[,colSums(is.na(df))<nrow(df)]
141
ответ дан 24 November 2019 в 00:51
поделиться

Другой способ - использовать функцию apply () .

Если у вас есть data.frame

df <- data.frame (var1 = c(1:7,NA),
                  var2 = c(1,2,1,3,4,NA,NA,9),
                  var3 = c(NA)
                  )

, вы можете использовать apply () , чтобы увидеть, какие столбцы соответствуют вашему условию, и вы можете просто выполнить то же подмножество, что и в ответе Мусы, только с подходом применить .

> !apply (is.na(df), 2, all)
 var1  var2  var3 
 TRUE  TRUE FALSE 

> df[, !apply(is.na(df), 2, all)]
  var1 var2
1    1    1
2    2    2
3    3    1
4    4    3
5    5    4
6    6   NA
7    7   NA
8   NA    9
15
ответ дан 24 November 2019 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: