我想对数据帧进行子集设置,从而根据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((基于多个字符串选择列