Сохранение только определенных столбцов фрейма данных при условии, что они соответствуют условию - PullRequest
0 голосов
/ 19 июня 2020

Я новичок в программировании, так что потерпите меня. У меня есть фрейм данных примерно с 1500 строками и 1000 переменными. Я пытаюсь сохранить столбцы, которые имеют только двоичные значения, например «0» или «1», также разрешены НП, но отбрасывать все остальные столбцы, не соответствующие этим критериям. Есть ли способ сделать это, не зная заранее имена столбцов, которые соответствуют критериям?

Я прочитал о функции dplyr filter(), а также о base R подмножество, но ни одно не соответствует тому, что я ищу.

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Новые функции в dplyr 1.0.0 предоставляют простое решение этой проблемы: select(.data, where(is.logical)). Где .data - ваш тиббл / фрейм данных (при условии, что ваши переменные имеют тип данных logical, т.е. TRUE / FALSE).

0 голосов
/ 19 июня 2020

Вы можете попробовать что-то вроде этого:

df <- data.frame(a=1:5,
                 b=c(0,1,0,1,0),
                 c=c(0,1,0,1,NA_real_),
                 d=c(0,1,0,1,2))

is_binary <- function(x){
  all(x %in% c(0,1,NA_real_))
}

df[,sapply(df, is_binary)]

Вывод:

  b  c
1 0  0
2 1  1
3 0  0
4 1  1
5 0 NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...