R 子选择仅在特定列中包含特定单词的行

R 子选择仅在特定列中包含特定单词的行,r,dataframe,R,Dataframe,我试图只选择在一列中包含特定单词的行,即每行包含特定文本的文本列。虽然我知道stringr包中的str_子集将选择这些行,但是我希望包含所有列的完整数据帧。有什么办法可以做到这一点吗?例如,在我的示例中,我可以查找那些包含单词“this”的行,因此我想要一个切掉行1、5和8的输出。谢谢你的提示 names <- c("Richard", "Mortimer", "Elizabeth", "Gerald", "Summer", "Marc", "Ben", "Emma") text <

我试图只选择在一列中包含特定单词的行,即每行包含特定文本的文本列。虽然我知道stringr包中的str_子集将选择这些行,但是我希望包含所有列的完整数据帧。有什么办法可以做到这一点吗?例如,在我的示例中,我可以查找那些包含单词“this”的行,因此我想要一个切掉行1、5和8的输出。谢谢你的提示

names <- c("Richard", "Mortimer", "Elizabeth", "Gerald", "Summer", "Marc", "Ben", "Emma")
text <- c("I have this.", "I have that.", "Is that cool?", "How about that?", "How about this?", "How do you get that?", "Where can I get that?", "When do I need this?")
it1 <- c(0.6, 0.3, 0.8, 0.8, 0.5, 0.5, 0.3, 0.7)
it2 <- c(0.5, 0.4, 0.4, 0.5, 0.8, 0.6, 0.5, 0.4)

myframe <- data.frame(names, text, it1, it2)

您可以使用base R中grepl的逻辑向量子集:

姓名% 过滤器tru detecttext,这个 >名称文本it1 it2 >我有这个。0.6 0.5 >这个怎么样?0.5 0.8 >3艾玛我什么时候需要这个?0.7 0.4
由v0.3.0于2019-08-08创建,您可以使用grepl中的逻辑向量在基R中进行子集:

姓名% 过滤器tru detecttext,这个 >名称文本it1 it2 >我有这个。0.6 0.5 >这个怎么样?0.5 0.8 >3艾玛我什么时候需要这个?0.7 0.4 由v0.3.0于2019-08-08创建