Изменение импортированной функции R в глобальном масштабе
Я хочу глобально добавить параметр в функцию после импорта. Таким образом, в будущих вызовах функций функция должна вызываться всегда с заданным параметром. В этом случае я хочу добавить параметр функции in_schema("abc") к функции tbl из dplyr.
Обычно я использую исходный код и изменяю параметры функции, сохраняю и использую его. Но в этом случае я уже не могу получить правильный файл исходного кода.
getAnywhere("tbl.DBIConnection")
Был найден единственный объект, соответствующий 'tbl.DBIConnection'. Он был найден в следующих местах, где был зарегистрирован метод S3 для tbl из пространства имен dplyr namespace: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.
1 ответ
Не копируйте и не изменяйте функцию, это грязно, вместо этого сделайте что-то вроде этого:
tbl_abc <- function(src, from, ...){
tbl(src, in_schema("abc", from), ...)
}
кстати tbl(connection, table, in_schema("abc"))
неправильный синтаксис, in_schema("abc")
нужен второй аргумент, и он передается ...
, которые не используются tbl.DBIConnection()