为什么将 pool::dbGetQuery 与 lapply 一起使用不起作用?

Why use of pool::dbGetQuery with lapply isn't working?

我正在尝试使用 R 的“池”包对一组数据库执行一组查询。

我有一个查询列表,queryList(我确认每个元素都是一个字符向量,例如“SELECT...FROM...”)。

library(pool)
library(DBI)

# queryList defined earlier

myPool <- dbPool (...)

Results <- lapply(queryList, pool::dbGetQuery, myPool)  # fails here!

我得到的错误是这样说的:“无法找到函数 'dbGetQuery' 的继承方法,用于签名“字符”、“池”。

一个 说这与 S4 不兼容有关。 pool::dbGetQuery 是一种 S4 方法。

有解决办法吗?

匿名函数的使用(例如,@neilfws 建议的 function(x)...)有效。但是,我不确定为什么,因为在直接处理 dbiConnection 对象时不需要使用匿名函数。所以这有效

lapply(queryList, DBI::dbGetQuery, conn) # conn is dbiConnection

但这行不通

lapply(queryList, pool::dbGetQuery, pool) # pool is a pool of dbiConnections

可能是我误读了官方文档?