#r #dplyr
#r #dplyr
Вопрос:
Привет, у меня есть фрейм данных, такой как :
COL1 COL2 COL3 COL4 COL5
A X A B X NA
B NA A A X NA
C NA NA A NA X
D X NA NA A NA
и я хотел бы удалить все столбцы, где их нет (значение A или B)
и получаем
COL2 COL3 COL4
A A B X
B A A X
C NA A NA
D NA NA A
Ответ №1:
Работает ли это:
df[sapply(df, function(x) any(c('A','B') %in% x))]
# A tibble: 4 x 3
COL2 COL3 COL4
<chr> <chr> <chr>
1 A B X
2 A A X
3 NA A NA
4 NA NA A
Используемые данные:
df
# A tibble: 4 x 5
COL1 COL2 COL3 COL4 COL5
<chr> <chr> <chr> <chr> <chr>
1 X A B X NA
2 NA A A X NA
3 NA NA A NA X
4 X NA NA A NA
Ответ №2:
tidyverse
альтернатива, для развлечения :
df %>%
select(where(~ any(.x %in% c("A", "B"))))