簡體   English   中英

如果任何行包含 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM