我有一個這樣的資料框
df <- data.frame(col1 = c(letters[1:4],"a"),col2 = 1:5,col3 = letters[10:14])
df
col1 col2 col3
1 a 1 j
2 b 2 k
3 c 3 l
4 d 4 m
5 a 5 n
我想確定包含以下向量中任何值的列:
vals=c("a","b","n","w")
一個整潔的解決方案會很棒!
uj5u.com熱心網友回復:
我們可能會使用 select
library(dplyr)
df %>%
select(where(~ any(. %in% vals, na.rm = TRUE)))
-輸出
col1 col3
1 a j
2 b k
3 c l
4 d m
5 a n
中的一個類似選項base R是Filter
Filter(\(x) any(x %in% vals, na.rm = TRUE), df)
col1 col3
1 a j
2 b k
3 c l
4 d m
5 a n
uj5u.com熱心網友回復:
另一個 tidyverse 選項是使用keep()from purrr。
library(purrr)
df %>%
keep( ~ any(.x %in% vals))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/397022.html
下一篇:Linux環境下在線運行R
