When I use devtools::check() on my package, it produces an error suggesting my example doesn't work. When just running the function normally outside of the package it works just fine, so I'm wondering what the issue could be?
It produces error:
Error in UseMethod("decision_lm") :
no applicable method for 'decision_lm' applied to an object of class "function"
Calls: decision_lm
Execution halted
This is my roxygen skeleton
#' Decision of linear regression test
#'
#' @description Gives the decision of retention or rejection for a linear
#' regression test
#'
#' @param fit1_lm list
#' @param ... other arguments
#'
#' @return characters
#'
#' @examples
#' fit1_lm <- fit_lm <- function(dat1) {
#' model <- lm(dat1$weight ~ dat1$height)
#' f1 <- summary(model)$coefficients[2,1]
#' f2 <- confint(model)[2,1]
#' f3 <- confint(model)[2,2]
#' f4 <- summary(model)$coefficients[2,3]
#' f5 <- df.residual(model)
#' f6 <- summary(model)$coefficients[2,4]
#' structure(
#' list(beta_hat = f1, CI_Lower = f2, CI_Upper = f3, t.value = f4, df = f5, p.value = f6),
#' class = "mytest") # Returns object of class mytest
#' }
#' fit1_lm(project2022)
#' decision_lm(fit1_lm)
#' @export
decision_lm <- function(fit1_lm, ...) {
UseMethod("decision_lm")
}
#' @method decision_lm mytest
#' @export
decision_lm.mytest <- function(fit1_lm, ...) {
if (fit1_lm[6] <= 0.05) {
glue::glue("We reject the null hypothesis, as the p-value <= 0.05")
} else if (fit1_lm[6] > 0.05) {
glue::glue("We do not reject the null hypothesis, as the p-value > 0.05")
}
}
The error says
no applicable method for 'decision_lm' applied to an object of class "function", which tells you that the object you passed todecision_lmis a function, not an object for which you've defined a method.In fact, your example has
decision_lm(fit1_lm), so it is trying to use thefit1_lmfunction as the argument, not the result of calling that function.If you change your example to something like
it should work.