【问题标题】:R; How to select() columns that contains() strings where the string is any element of a listR;如何选择()包含()字符串的列,其中字符串是列表的任何元素
【发布时间】:2020-02-23 19:40:51
【问题描述】:

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

这就是我现在拥有的:

colstrings <- c('A', 'B', 'C')

for (i in colstrings){
   df <- df %>% select(-contains(i))
}

但是,感觉这不应该用 for 循环来完成。有关如何缩短此代码的任何建议?

【问题讨论】:

    标签: r


    【解决方案1】:

    这是改编自之前 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="|")))
    

    在此处查看更多信息:select columns based on multiple strings with dplyr contains()

    【讨论】:

    • 就可以了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 2010-10-04
    • 2012-11-25
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多