什么是SQL的"LIKE'%searching_word%'的R等价物?"

use*_*637 4 sql r

如何使用R检查我的数据集中字段的文本中是否包含特定单词.

在SQL中,我们可以使用LIKE比较运算符.例如,

SELECT * FROM schools WHERE name LIKE '%Public School%'
Run Code Online (Sandbox Code Playgroud)

如果我必须在R中做同样的事情,我该怎么做?

G. *_*eck 7

特定

schools <- data.frame(rank = 1:20, 
                 name = rep(c("X Public School", "Y Private School"), 10))
Run Code Online (Sandbox Code Playgroud)

试试这个:

subset(schools, grepl("Public School", name))
Run Code Online (Sandbox Code Playgroud)

或这个:

schools[ grep("Public School", schools$name), ]
Run Code Online (Sandbox Code Playgroud)

或这个:

library(sqldf)
sqldf("SELECT * FROM schools WHERE name LIKE '%Public School%'")
Run Code Online (Sandbox Code Playgroud)

或这个:

library(data.table)
data.table(schools)[ grep("Public School", name) ]
Run Code Online (Sandbox Code Playgroud)

或这个:

library(dplyr)
schools %>% filter(grepl("Public School", name))
Run Code Online (Sandbox Code Playgroud)

  • `data.table`有一个`%like%`运算符,不需要`grep` =>`学校[name%like%"Public Sc​​hool"]`&如果你使用`tbl_dt`你甚至可以``学校% >%filter(名称%like%"Public Sc​​hool")`with`dplyr` (3认同)