如何在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不需要2grepl
:
indx <- grepl("Tum.*B|B.*Tum", df1$Type)
df1[indx, ]
# chr Type
# 1 1 Tum,B,B,Tum
# 4 4 B,B,B,Tum
indxsubset(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