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

如何设置和“&”多个条件删除带有“!”的行数据表方式R

  •  0
  • rane  · 技术社区  · 6 年前

    DT[!grepl("XXX",COLUMN),]

    目标:删除具有3个条件的行

    # Like : grepl("BB",RR) & grepl("XLKG",B) & grepl("GA",FF)
      RR    B FF
      1: AA  XLJ KA
      2: BB XLKG CA
      3: BB XLKG GA     <----- remove this rows
      4: BB XLKG FA
      5: BB XLCC GA   
    
    # DATASET
    DD <- data.table(RR=c("AA","BB","BB","BB","BB"),B=c("XLJ","XLKG","XLKG","XLKG","XLCC"),FF=c("KA","CA","GA","FA","GA"))
    

    DD[!grepl("BB",RR) & grepl("XLKG",B) & grepl("GA",FF),][]
    Empty data.table (0 rows) of 3 cols: RR,B,FF
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   s_baldur    6 年前

    此外,如果您必须使用 grepl() 然后 fixed = TRUE 如果不使用任何正则表达式,将提高性能:

    DD[!(grepl("BB", RR, fixed = TRUE) & grepl("XLKG", B, fixed = TRUE) & grepl("GA", FF, fixed = TRUE))]
    
       RR    B FF
    1: AA  XLJ KA
    2: BB XLKG CA
    3: BB XLKG FA
    4: BB XLCC GA