Удалить столбцы в data.frame, которые не содержат значения c? - PullRequest
0 голосов
/ 25 марта 2020

У меня есть data.frame с 5 столбцами, 4 из столбцов содержат значения от 0 до 99, только 1 столбец содержит значения от 0 до 100. В основном я хочу создать логическую функцию, которая отбрасывает все 4 столбца содержат значение 100.

Таким образом, гипотетически предположим, что column1, column2, column3 и column5 должны быть удалены, поскольку column4 - единственный столбец, который содержит значение 100.

Кроме того, удаление вручную столбцы не вариант, потому что значения столбца обновляются ежедневно с помощью автоматизированной структуры. Так что логическая функция была бы идеальной.

1 Ответ

0 голосов
/ 25 марта 2020

Мы могли бы использовать colSums:

df[, colSums(df == 100, na.rm = TRUE) > 0]

#    b   d
#1  10 100
#2  12  98
#3 100 100
#4   1   1

Или с dplyr:

library(dplyr)
df %>% select_if(~any(. == 100, na.rm = TRUE))

data

df <- data.frame(a = c(89, 23, 25, 21),b = c(10, 12, 100, 1), 
                 c = c(10, 1, 3, 6), d = c(100, 98, 100, 1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...