R;如何选择包含()字符串的()列,其中字符串是列表的任何元素



我想对数据帧进行子集设置,从而根据colname是否包含特定字符串来选择列。它必须包含的这些字符串存储在一个单独的列表中。

这就是我现在拥有的:

colstrings <- c('A', 'B', 'C')
for (i in colstrings){
df <- df %>% select(-contains(i))
}

然而,感觉这不应该用for循环来完成。关于如何缩短此代码,有什么建议吗?

以下是改编自前一篇SO文章的答案:

library(dplyr)
df <-
tibble(
ash = c(1, 2),
bet = c(2, 3),
can = c(3, 4)
)
df
substr_list <- c("sh", "an")
df %>% 
select(matches(paste(substr_list, collapse="|")))

点击此处查看更多:使用dplyr contains((基于多个字符串选择列

最新更新