Я использую пакет mgcv в своем собственном пакете, и до сих пор все работало хорошо. Однако я попытался представить объекты семейства Tweed ie ("Tweed ie ()", "tw ()") в мой пакет, но при попытке использовать последний получаю ошибку.
Функция так проста (здесь упрощенно):
#' @importFrom mgcv tw
#'
.FamilyLink <- function(link) {
familyObject <- tw(link = link)
return(familyObject)
}
, и у меня есть это в файле NAMESPACE
importFrom(mgcv,tw)
Так что после установки пакета я вызываю свою функцию (не экспортируется, обычно используется в другой функции из моего пакета)
fam <- MyPackage:::.FamilyLink("log")
fam$aic(1, 1, NULL, 1, 1)
Error in ldTweedie(y, mu, p = p, phi = scale) :
could not find function "ldTweedie"
Затем я попытался добавить:
importFrom(mgcv,ldTweedie)
importFrom(mgcv,tw)
Установил пакет и получил ту же проблему. Однако, если я загружаю свой пакет, используя devtools:
devtools::load_all("MyPackage")
fam <- .FamilyLink("log")
fam$aic(1, 1, NULL, 1, 1)
[1] 4.05723
все работает нормально. Поэтому мне было интересно, что я делаю здесь что-то не так или как мне заставить мой пакет / функцию работать, просто установив и не используя load_all ()? Спасибо