Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中同时grep两个术语_R - Fatal编程技术网

如何在R中同时grep两个术语

如何在R中同时grep两个术语,r,R,我有一个如下的数据帧 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$Ty

我有一个如下的数据帧

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])

我们可以使用double
grepl
来创建两个逻辑索引,并使用
&
检查两个都为真的实例。这可用于对“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

或者通过纯粹的
regex
w/o不需要2
grepl

indx <- grepl("Tum.*B|B.*Tum", df1$Type)
df1[indx, ]

#   chr        Type
# 1   1 Tum,B,B,Tum
# 4   4   B,B,B,Tum
indx
subset(df,grepl('B',df1$Type)&grepl('Tum',df1$Type))
也可以使用
 subset(df,grepl('B', Type) & grepl('Tum', Type))
indx <- grepl("Tum.*B|B.*Tum", df1$Type)
df1[indx, ]

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