gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:54:09 24 4
gpt4 key购买 nike

我有一个数据框如下

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

最佳答案

我们可以使用双 grepl 创建两个逻辑索引,并使用 & 检查两者是否为 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 是另一种选择。我们可以删除 subset 中的 df1$ 并且也不必担心删除维度,因为 drop=FALSEsubset,而在 [ 中,它是 drop=TRUE。因此,当我们有单列或单行时,如果我们没有在 [.

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

关于r - 如何在 R 中同时 grep 两个术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31987120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com