[英]Filter rows that contain specific boolean value in any column in a dataframe in R
[英]Keep column if any row contain specific value in R
您好,我有一個 dataframe 例如:
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
這是否有效:
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
tidyverse
替代方案,為了好玩:
df %>%
select(where(~ any(.x %in% c("A", "B"))))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.