我通常在dplyr中将filtergrepl一起使用,但是在使用dbplyr时。我收到一个错误,说grepl不是公认的函数。我的猜测是它无法转换为SQL Server。 dbplyr如何解决此问题

这是一个可重现的例子

library(dbplyr)
library(nycflights13)

## Working chunk
con <-DBI::dbConnect(RSQLite::SQLite(), ":memory:")
DBI::dbWriteTable(con, "flights", flights)
DBI::dbGetQuery(con, "SELECT origin, flight
FROM flights WHERE origin like '%jf%'")
## End working chunk

## The below code does not work
flights <- tbl(con,"flights")
flights %>%
  select(origin, flight) %>%
  filter(grepl('jf', origin))

最佳答案

我发现this answer中的解决方案有效。

这是适合您情况的代码:

dplyr::tbl(con, "flights") %>%
    filter(origin %like% '%jf%') %>%
    collect()

关于r - 如何按dbplyr中包含变量的字符串过滤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46096942/

10-10 06:26