gpt4 book ai didi

dplyr 中的回归输出

转载 作者:行者123 更新时间:2023-12-04 11:59:29 30 4
gpt4 key购买 nike

我想定义与“扫帚”包中类似的功能

library(dplyr)
library(broom)

mtcars %>%
group_by(am) %>%
do(model = lm(mpg ~ wt, .)) %>%
glance(model)

工作正常。但是我如何定义自定义函数,例如
myglance <- function(x, ...) {
s <- summary(x)
ret <- with(s, data.frame(r2=adj.r.squared, a=coefficients[1], b=coefficients[2]))
ret
}


mtcars %>%
group_by(am) %>%
do(model = lm(mpg ~ wt, .)) %>%
myglance(model)

eval(substitute(expr), data, enclos = parent.frame()) 中的错误:
“字符”类型的无效“环境”参数

最佳答案

glance以这种方式工作是因为 broom 包定义了一种用于 rowwise 数据帧的方法 here .如果您愿意引入整个 .R 文件(以及来自 herecol_name 实用程序),您可以使用我的代码来做同样的事情:

myglance_df <- wrap_rowwise_df(wrap_rowwise_df_(myglance))

mtcars %>%
group_by(am) %>%
do(model = lm(mpg ~ wt, .)) %>%
myglance_df(model)

还有一个不需要从 broom 添加这么多代码的解决方法:更改每个模型的类,并在该类上定义您自己的概览函数。
glance.mylm <- function(x, ...) {
s <- summary(x)
ret <- with(s, data.frame(r2=adj.r.squared, a=coefficients[1], b=coefficients[2]))
ret
}

mtcars %>%
group_by(am) %>%
do(model = lm(mpg ~ wt, .)) %>%
mutate(model = list(structure(model, class = c("mylm", class(model))))) %>%
glance(model)

最后,您还可以选择执行 myglance马上上模型。
mtcars %>% 
group_by(am) %>%
do(myglance(lm(mpg ~ wt, .)))

关于dplyr 中的回归输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33925965/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com