如何在R中同时grep两个词

塞巴斯蒂安·泽基(Sebastian Zeki)

我有一个数据框如下

chr     Type
1     Tum,B,B,Tum
2     B,B
3     Tum,Tum
4     B,B,B,Tum

我只想选择同时具有Tum和B的那些行插入到新数据框中,结果如下:

chr     Type
    1     Tum,B,B,Tum
    4     B,B,B,Tum

我尝试了以下

PusungMix <- as.data.frame(Pusung[grep("Barr"&"Tum", Pusung$Type])

但我得到了错误

Error in "Barr" & "Tum" : 
  operations are possible only for numeric, logical or complex types
阿克伦

我们可以使用doublegrepl来创建两个逻辑索引,并使用来检查两个实例均为TRUE的实例&这可用于子集“ df1”的行。

 indx <- grepl('B', df1$Type) & grepl('Tum', df1$Type)
 df1[indx,]
 #  chr        Type
 #1   1 Tum,B,B,Tum
 #4   4   B,B,B,Tum

或者,如注释中建议的@Gaurav,subset如果我们不想使用则是另一种选择[我们可以去除df1$subset,也不必有关删除的尺寸的担心drop=FALSE是默认subset的,而[,它是drop=TRUE因此,vector如果我们没有drop=FALSE在中明确指定,则当我们只有一列或一行时,它将把尺寸降至a [

 subset(df,grepl('B', Type) & grepl('Tum', Type))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章