【问题标题】:R program: select columns that contain certain wordsR程序:选择包含某些单词的列
【发布时间】:2020-08-06 13:46:52
【问题描述】:

我正在研究一个 R 程序,它应该选择包含某些单词的列。例如我想选择所有包含aa 1的列:

cols<-c('aa z 1','bb x 1', 'aa x 1', 'cc z 1') 
df <- data.frame(matrix(ncol = 5, nrow = 1)) 
colnames(df)<-cols 
df[1,]<-c(1,3,2,2,4)

在此示例中,这意味着我想选择第 1 列 (aa z 1) 和第 3 列 (aa x 1)。有没有可能这样做?

提前感谢您的帮助

【问题讨论】:

    标签: r dataframe select contains


    【解决方案1】:

    dplyr 的解决方案:

    library(dplyr)
    select(df, matches("^aa.*1$"))
    

    以“aa”开头的正则表达式匹配字符串有任意数量的字符并以“1”结尾

    【讨论】:

      【解决方案2】:

      在基础 R 中,可以执行以下操作:

      df[,grepl("^aa.*1$", names(df))]
      

      ^aa.*1$ 是使用正则表达式指定的模式。过滤所有以aa 开头并以1 结尾的列。

      输出

      aa z 1 aa x 1
      1      1      2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-26
        • 2013-11-22
        • 2021-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多