在R中检测字符串中的单词

在R中检测字符串中的单词,r,R,我有一本书。它有多个列,其中一个是带有实际注释的body列。现在,我想搜索某个单词,如品牌名称,例如body列中的“BMW”,并创建数据$body中包含“BMW”的行的子集 数据集看起来与此类似: str(data) data.frame: 75519 obs. of 113 variables $ body: chr "...." ..... $ name: Factor w/ 22805 levels .... .... 我知道SQL命令,它看起来像这样 SELECT * FROM dat

我有一本书。它有多个列,其中一个是带有实际注释的body列。现在,我想搜索某个单词,如品牌名称,例如body列中的“BMW”,并创建数据$body中包含“BMW”的行的子集

数据集看起来与此类似:

str(data)
data.frame: 75519 obs. of 113 variables
$ body: chr "...." .....
$ name: Factor w/ 22805 levels ....
....
我知道SQL命令,它看起来像这样

SELECT * FROM dataset
WHERE body contains "BMW"
R中是否有类似的命令

多谢各位

编辑:解决方案是

 bmw <- data[grep("BMW", data$body),]
bmw解决方案是

bmw <- data[grep("BMW", data$body),]

bmw以下任何一项都会成功:

bmw <- data[ grep("BMW", data$body), ]  # numerical indexing
bmw <- data[ grepl("BMW", data$body), ] # logical indexing

bmw可能是我刚刚尝试过的grepl(“bmw”,data$body)的副本,它只给出布尔表达式。我想将数据$body中包含“BMW”的行作为子集。你知道怎么做吗?我能用grep的这些数字位置从原始数据帧中生成一个子集吗?最后,我希望有一个新的数据集,其中body列包含“BMW”,以及原始数据集的所有其他列。我想
data[grep(“BMW”,data$body),]
可以工作。太好了,工作正常了!非常感谢。