[英]Selecting colums based on row values
我想根據行中的值對列進行子集化(如果可能,使用 dplyr 友好方法)。
數據框看起來像這樣,但有更多列:
df <-
data.frame(a = c("a","b","c","bingo"),
b = c("d","e","a","b"),
c = c("bingo","bingo","a","e"))
我只想 select 包含值“bingo”的列,例如
df %>% select(columns_that_contain("bingo"))
預期的 output:
a c
1 a bingo
2 b bingo
3 c a
4 bingo e
任何幫助將不勝感激!
select-helpers
,即starts_with/ends_with/contains/matches
正在將列名與select
進行匹配。 如果我們需要匹配列中的值,請在select
中使用where
並創建一個邏輯條件,即'bingo' %in%.
哪里.
是單個列的值,這將返回單個 TRUE/FALSE,因為%in%
的 lhs 是長度為 1 的元素。
library(dplyr)
df %>%
select(where(~ 'bingo' %in% .))
或者另一個選項是any
df %>%
select(where(~ any(. == 'bingo')))
您可以使用以下代碼:
library(dplyr)
library(stringr)
df %>%
select(where(~ any(str_detect(.x, "bingo"))))
a c
1 a bingo
2 b bingo
3 c a
4 bingo e
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.