【问题标题】:Changing imported R function globally全局更改导入的 R 函数
【发布时间】:2019-06-11 09:40:14
【问题描述】:

我想在导入后为函数全局添加一个参数。所以在未来的函数调用中,函数应该总是用 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 函数(在脚本文件中),以便将来的调用始终使用某个方案?

像这样:

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

无需一直提供 in_schema 参数。

【问题讨论】:

    标签: r dbplyr tbl


    【解决方案1】:

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

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

    btw tbl(connection, table, in_schema("abc")) 语法不正确,in_schema("abc") 需要第二个参数,它被传递给...tbl.DBIConnection() 没有使用它

    【讨论】:

    • 谢谢,还有关于 in_schema 的提示;有用!我将其编辑为: tbl_dwh
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2017-03-01
    • 1970-01-01
    相关资源
    最近更新 更多