0

我想在导入后向函数全局添加参数。所以在未来的函数调用中,函数应该总是用 set 参数调用。在这种情况下,我想将函数参数 in_schema("abc") 从 dplyr 添加到函数 tbl 中。

通常,我会使用源代码并修改函数参数,保存并获取它。但在这种情况下,我已经无法获得正确的源代码文件。

getAnywhere("tbl.DBIConnection")

找到与“tbl.DBIConnection”匹配的单个对象它在以下位置找到为 tbl 从命名空间 dplyr 命名空间注册的 S3 方法:具有值的 dplyr

function (src, from, ...) 
{
    check_dbplyr()
    tbl(dbplyr::src_dbi(src, auto_disconnect = FALSE), from = from, 
        ...)
}

我如何修改 tbl 函数(在脚本文件中),以便将来的调用始终使用某个方案?

像这样:

tbl(connection, table, in_schema("abc"))

无需一直提供 in_schema 参数。

4

1 回答 1

3

不要复制和修改函数,它很乱,而是做这样的事情:

tbl_abc <- function(src, from, ...){
  tbl(src, in_schema("abc", from), ...)
}

顺便说一句tbl(connection, table, in_schema("abc")),语法不正确,in_schema("abc")需要第二个参数,它被传递...tbl.DBIConnection()

于 2019-06-11T10:10:23.490 回答