【问题标题】:how to subset a datafrom with partial match column names如何对具有部分匹配列名的数据框进行子集化
【发布时间】:2015-02-04 14:50:07
【问题描述】:

我有一个大数据框。我想使用与某些列名的前部部分匹配的名称列表对数据框进行子集化。我不知道如何编写代码。 例如列表名称:lst <- c("LD08.1593","LD09.10917","LD10.10226","M05.353086","Thore")

数据框列: ...,"LC10096.2", "LD08.1593.s1", "LD08.1593.s2","LD08.1692.1","LD08.1692.2","LD09.10917.s1","LD09.10917.s2","LD10.10226-s1","LD10.10226-s2","LEC.12.6056.70","LEC.12.6113.02","M05.353086","Thore_t1","Thore_t5", ... 我希望子集数据框只包含"LD08.1593.s1","LD08.1593.s2","LD09.10917.s1","LD09.10917.s2","LD10.10226-s1","LD10.10226-s2","M05.353086","Thore_t1","Thore_t5"

谢谢。

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以试试

     dat[,grep(paste0("^",paste(lst, collapse="|")), colnames(dat))]
    

    数据

    set.seed(42)
    dat <- as.data.frame(matrix(sample(1:25,14*10, replace=TRUE), ncol=14))
    
    colnames(dat) <- c("LC10096.2", "LD08.1593.s1", "LD08.1593.s2","LD08.1692.1",
    "LD08.1692.2","LD09.10917.s1","LD09.10917.s2","LD10.10226-s1",
    "LD10.10226-s2","LEC.12.6056.70","LEC.12.6113.02","M05.353086",
    "Thore_t1","Thore_t5")
    
    lst <- c("LD08.1593","LD09.10917","LD10.10226","M05.353086","Thore")
    

    【讨论】:

      猜你喜欢
      • 2015-05-18
      • 2022-12-14
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      • 2018-02-01
      相关资源
      最近更新 更多