全局更改导入的R函数

时间:2019-06-11 09:40:14

标签: r dbplyr tbl

我想在导入后在函数中全局添加参数。因此,在将来的函数调用中,应始终使用set参数来调用该函数。 在这种情况下,我想将功能参数in_schema(“ abc”)添加到dplyr的功能tbl中。

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

getAnywhere("tbl.DBIConnection")
  

找到一个与'tbl.DBIConnection'匹配的对象   在以下地方发现    命名空间dplyr中tbl的已注册S3方法    名称空间:dplyr   有价值

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

  

如何修改tbl函数(在脚本文件中),以便将来的调用始终使用特定的Scheme?

像这样:

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

无需始终提供in_schema参数。

1 个答案:

答案 0 :(得分:3)

不要复制和修改函数,这很麻烦,请改为执行以下操作:

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

btw tbl(connection, table, in_schema("abc"))是不正确的语法,in_schema("abc")需要第二个参数,并将其传递给...不使用的tbl.DBIConnection()