grepl 用于 dplyr sql 表?
Posted
技术标签:
【中文标题】grepl 用于 dplyr sql 表?【英文标题】:grepl for dplyr sql table? 【发布时间】:2015-02-12 14:40:54 【问题描述】:有没有办法使用类似的东西
filter(df, grepl("A|B|C",location))
对于 dplyr SQL 表?在 SQL 中,它可能是 LIKE
。当然,我可以将 SQL 表转换为 R 数据表,但它非常大。 (http://cran.r-project.org/web/packages/dplyr/vignettes/databases.html) 此刻我得到了
Error in sqliteSendQuery(conn, statement) :
error in statement: no such function: GREPL
谢谢 克里斯托夫
【问题讨论】:
filter(df, location %in% c("a", "b", "c")
,或使用semi_join()
@hadley 感谢您的出色图书馆。有没有办法获得模式匹配(SQL LIKE 而不是 IN)? %in%
和semi_join()
做完全匹配,如果我理解正确的话
使用x %like% y
这些操作符记录在哪里?
x %like% "y"
将匹配整个变量,而x %like% "%y%"
将在 x 列中查找模式 y。
【参考方案1】:
使用sql
将表达式直接翻译成sql是一种选择。
sql_table %>% filter( sql("location LIKE 'A%'
OR location LIKE 'B%'
OR location LIKE 'C%'")
这会将以下内容注入到查询的 WHERE 语句中:
<SQL> location LIKE 'A%' OR location LIKE 'B%' OR location LIKE 'C%'
【讨论】:
以上是关于grepl 用于 dplyr sql 表?的主要内容,如果未能解决你的问题,请参考以下文章
Python 相当于 R 的 grepl 和 dplyr 过滤器 [重复]