R: принудительное использование метода - PullRequest
0 голосов
/ 12 июня 2018

У меня есть метод (stuff) для объекта "aov".Тем не менее, я хотел бы иметь тот же метод для объекта «anova», но без необходимости копирования, вставки двух функций.Другими словами, я хотел бы принудительно использовать stuff.aov для объекта anova.

Я пытался изменить класс объекта и запустить метод, но, похоже, он не работает.

Воспроизводимый пример:

library(broom)

stuff <- function(x) {
  UseMethod("stuff")
}

stuff.aov <- function(x){
  broom::tidy(x)
}
stuff.anova <- function(x){
  class(x) <- "aov"
  stuff(x)
}

x1 <- aov(iris$Sepal.Length ~ iris$Petal.Length)
x2 <- anova(lm(iris$Sepal.Length ~ iris$Petal.Length))
stuff(x1)
stuff(x2)

Я обнаружил, что с помощью этой работы в воспроизводимом примере:

library(broom)

stuff <- function(x) {
  UseMethod("stuff")
}

stuff.aov <- function(x){
  broom::tidy(x)
}
stuff.anova <- function(x){
  class(x) <- "aov"
  stuff(x)
}

x1 <- aov(iris$Sepal.Length ~ iris$Petal.Length)
x2 <- anova(lm(iris$Sepal.Length ~ iris$Petal.Length))
stuff(x1)
stuff(x2)

Но он не проходит проверки CRAN и сборку документации Roxygen... Есть ли более "простой" или "чистый" способ сделать это?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...