无法使用 getFromNamespace() 获取扫帚包导出
Can't get broom package exports with getFromNamespace()
我有一个函数试图从 broom 包中获取特定的 'tidier'。但是,getFromNamespace 无法找到它们。考虑下面的代表:
f <- function(tidier = c("tidy", "glance", "augment")) {
tidier_func <- match.arg(tidier)
tidier_func <- utils::getFromNamespace(tidier_func, "broom")
tidier_func(lm(mpg ~ wt, data = mtcars))
}
f("tidy")
#> Error in get(x, envir = ns, inherits = FALSE): object 'tidy' not found
由 reprex package (v0.3.0)
于 2021-12-17 创建
此错误是否与 broom 的 modelgenerics 分支有关? S3?
如@aosmith 所述,您必须指定泛型。
对于 lm:
f <- function(tidier = c("tidy", "glance", "augment")) {
tidier_func <- paste0(match.arg(tidier), ".lm")
tidier_func <- utils::getFromNamespace(tidier_func, "broom")
tidier_func(lm(mpg ~ wt, data = mtcars))
}
f("tidy")
#> # A tibble: 2 x 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 (Intercept) 37.3 1.88 19.9 8.24e-19
#> 2 wt -5.34 0.559 -9.56 1.29e-10
由 reprex package (v0.3.0)
于 2021-12-17 创建
对于chisq.test:
fchisq <- function(tidier = c("tidy", "glance", "augment")) {
tidier_func <- paste0(match.arg(tidier), ".htest")
tidier_func <- utils::getFromNamespace(tidier_func, "broom")
x <- chisq.test(c(A = 20, B = 15, C = 25))
tidier_func(x)
}
fchisq("glance")
#> # A tibble: 1 x 4
#> statistic p.value parameter method
#> <dbl> <dbl> <dbl> <chr>
#> 1 2.5 0.287 2 Chi-squared test for given probabilities
由 reprex package (v0.3.0)
于 2021-12-17 创建
等等
我有一个函数试图从 broom 包中获取特定的 'tidier'。但是,getFromNamespace 无法找到它们。考虑下面的代表:
f <- function(tidier = c("tidy", "glance", "augment")) {
tidier_func <- match.arg(tidier)
tidier_func <- utils::getFromNamespace(tidier_func, "broom")
tidier_func(lm(mpg ~ wt, data = mtcars))
}
f("tidy")
#> Error in get(x, envir = ns, inherits = FALSE): object 'tidy' not found
由 reprex package (v0.3.0)
于 2021-12-17 创建此错误是否与 broom 的 modelgenerics 分支有关? S3?
如@aosmith 所述,您必须指定泛型。
对于 lm:
f <- function(tidier = c("tidy", "glance", "augment")) {
tidier_func <- paste0(match.arg(tidier), ".lm")
tidier_func <- utils::getFromNamespace(tidier_func, "broom")
tidier_func(lm(mpg ~ wt, data = mtcars))
}
f("tidy")
#> # A tibble: 2 x 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 (Intercept) 37.3 1.88 19.9 8.24e-19
#> 2 wt -5.34 0.559 -9.56 1.29e-10
由 reprex package (v0.3.0)
于 2021-12-17 创建对于chisq.test:
fchisq <- function(tidier = c("tidy", "glance", "augment")) {
tidier_func <- paste0(match.arg(tidier), ".htest")
tidier_func <- utils::getFromNamespace(tidier_func, "broom")
x <- chisq.test(c(A = 20, B = 15, C = 25))
tidier_func(x)
}
fchisq("glance")
#> # A tibble: 1 x 4
#> statistic p.value parameter method
#> <dbl> <dbl> <dbl> <chr>
#> 1 2.5 0.287 2 Chi-squared test for given probabilities
由 reprex package (v0.3.0)
于 2021-12-17 创建等等