如何替换向量整理器

问题描述

我正在寻找另一个可以删除broom::tidy()函数的函数。这是扫帚包装警告说的:

整齐的原子载体 不推荐使用矢量整理器,并且将从即将发布的扫帚中删除。

这里是功能的描述:

tidy()产生一个tibble(),其中每一行都包含有关模型重要组成部分的信息。对于回归模型,这通常对应于回归系数。如果您要检查模型或创建自定义可视化效果,这将很有用。

谢谢

约翰

解决方法

据我了解的警告,函数broom::tidy并没有一般性的建议,仅当使用原子向量调用此警告时,才会发生此警告。在这种情况下,tibble()似乎是一种替代产品:

在调用线性模型时,不会对tidy()发出过时警告:

library(broom)
fit <- lm(Volume ~ Girth + Height,trees)
tidy(fit)
## A tibble: 3 x 5
#  term        estimate std.error statistic  p.value
#  <chr>          <dbl>     <dbl>     <dbl>    <dbl>
#1 (Intercept)  -58.0       8.64      -6.71 2.75e- 7
#2 Girth          4.71      0.264     17.8  8.22e-17
#3 Height         0.339     0.130      2.61 1.45e- 2

#弃用警告:

tidy(1:5)
## A tibble: 5 x 1
#      x
#  <int>
#1     1
#2     2
#3     3
#4     4
#5     5
#Warning messages:
#1: 'tidy.numeric' is deprecated.
#See help("Deprecated") 
#2: `data_frame()` is deprecated as of tibble 1.1.0.
#Please use `tibble()` instead.

无警告,输出相同:

tibble(1:5)
## A tibble: 5 x 1
#  `1:5`
#  <int>
#1     1
#2     2
#3     3
#4     4
#5     5
,

该过时警告让您知道方法tidy.numeric已被删除。

broom:::tidy.numeric
function (x,...) 
{
    .Deprecated()
    if (!is.null(names(x))) {
        dplyr::data_frame(names = names(x),x = unname(x))
    }
    else {
        dplyr::data_frame(x = x)
    }
}

您可以在此处看到对.Deprecated的调用,其余函数仅调用data_frame。由于不建议使用此功能,因此tibble是新的解决方案。由于tibble不支持行名,因此,如果要保存行名,则可以创建类似于上面的内容。

tidy.numeric <- function (x,...) 
{
    if (!is.null(names(x))) {
        tibble::tibble(names = names(x),x = unname(x))
    }
    else {
        tibble::tibble(x = x)
    }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...