grep和子集

时间:2012-11-13 09:43:14

标签: r grep

我正在尝试在大文件中将所有不以"_at"结尾的单词进行子集化。

例如:文件“myfile”是一个data.frame,如下所示(具体来说我有一个包含50列和1000行的文件):

myfile <- read.table( text = '"G1"            "G2"  
    SEP11          ABCC1   
    205772_s_at    FMO2   
    214223_at      ADAM19     
    ANK2           215742_at 
    COPS4          BIK 
    214808_at      DCP1A
    ACE            ALG3
    BAD            215369_at
    EMP3           215385_at
    CARD8          217579_x_at
', header = TRUE, stringsAsFactors = FALSE)

我想要以下输出:

  "G1"           "G2"  
 SEP11          ABCC1  
 ANK2           FMO2  
 COPS4          ADAM19     
 ACE            BIK   
 BAD            DCP1A
 EMP3           ALG3 
 CARD8

我使用了以下字符串,但它不起作用可能是因为我做错了什么:

sub <- myfile[-grep("\\_at", names(myfile)), ]

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:6)

以下代码将为您提供一个列表。列表的每个元素都是由正则表达式_at$过滤的列之一的子集。请参阅?grep

lapply( myfile, 
   function(column) grep( "_at$", column, invert = TRUE, value = TRUE )
)