我想根据行中的值对列进行子集化(如果可能,使用 dplyr 友好的方法)。
数据框看起来像这样但是有更多的列:
df <-
data.frame(a = c("a","b","c","bingo"),
b = c("d","e","a","b"),
c = c("bingo","bingo","a","e"))
我只想选择包含值“bingo”的列 像
df %>% select(columns_that_contain("bingo"))
预期输出:
a c
1 a bingo
2 b bingo
3 c a
4 bingo e
任何帮助将不胜感激!
最佳答案
select-helpers
即 starts_with/ends_with/contains/matches
正在对列名进行匹配以选择
列。如果我们需要匹配列中的值,请在 select
中使用 where
并创建一个逻辑条件,即 'bingo' %in% 。
where .
是单个列的值,这将返回单个 TRUE/FALSE,因为 %in%
的 lhs 是长度为 1 的元素。
library(dplyr)
df %>%
select(where(~ 'bingo' %in% .))
或者另一个选项是any
df %>%
select(where(~ any(. == 'bingo')))
关于r - 根据行值选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67306279/