我通常在dplyr中将filter
与grepl
一起使用,但是在使用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/