grep和子集

Bfu*_*u38 2 grep r

我试图在一个大文件中分配所有不以此结尾的单词"_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)
Run Code Online (Sandbox Code Playgroud)

我想要以下输出:

  "G1"           "G2"  
 SEP11          ABCC1  
 ANK2           FMO2  
 COPS4          ADAM19     
 ACE            BIK   
 BAD            DCP1A
 EMP3           ALG3 
 CARD8
Run Code Online (Sandbox Code Playgroud)

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

sub <- myfile[-grep("\\_at", names(myfile)), ]
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

Rom*_*ois 6

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

lapply( myfile, 
   function(column) grep( "_at$", column, invert = TRUE, value = TRUE )
)
Run Code Online (Sandbox Code Playgroud)