【问题标题】:grepl for dplyr sql table?grepl 用于 dplyr sql 表?
【发布时间】: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。

标签: r filter dplyr grepl


【解决方案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%'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2021-02-21
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    相关资源
    最近更新 更多