代码之家  ›  专栏  ›  技术社区  ›  user3725021

测试列名是否包含R中的字符串

r
  •  7
  • user3725021  · 技术社区  · 11 年前

    我正在尝试测试数据帧中的每个列名是否包含特定字符串(在本例中为“Fld”)。我在下面的尝试不是编译,我不确定哪里出错了。如果有任何帮助,将不胜感激。

    varnames <-colnames(data)
    for (i in 1:len(varnames)){
      if grepl("Fld",varnames[i])==TRUE {
        print varnames[i]
      }
    }
    
    3 回复  |  直到 11 年前
        1
  •  19
  •   akrun    11 年前

    我们可以使用 grep 获取具有“Fld”的列名索引

    indx <- grepl('Fld', colnames(data))
    

    并将其用于“数据”的子集

     data[indx]
    
        2
  •  3
  •   amc    6 年前

    如果您只是想在R中“测试[a]列名是否包含字符串”,我会使用 any() 围绕@akrun的好答案:

    if(any(grepl("Fld", colnames(data)))){
       print("True")
    }
    
        3
  •  3
  •   Abdul Samad Alvi    6 年前

    变得更简单!

    data[grepl('Fld', colnames(data))]