如何解决如何计算多个 lm() 的 box cox \lambda
library(tidyverse)
获取和清理数据
data(lme4::sleepstudy)
sleep <- as_tibble(sleepstudy) %>%
rename_all(tolower) %>%
rename(rt = reaction)
我想应用到多个lm()
的函数
sleepBC <- function(tbl) {
boxcox(tbl,plotit = FALSE) %>%
as_tibble() %>%
filter(y == max(y)) %>%
pull(x) %>%
round_any(.,0.5)
}
round_any
复制自 plyr
:
round_any = function(x,accuracy,f = round){f(x / accuracy) * accuracy}
测试一个主题:
d308 <- sleep %>% filter(subject == "308")
m308 <- lm(rt ~ days,data = d308)
sleepBC(m308)
现在介绍多个模型。定义一个函数:
sleepLM <- function(tbl) {
lm(rt ~ days,data = tbl)
}
我想要这样的东西:
sleepMod <- sleep %>%
group_by(subject) %>%
nest() %>%
mutate(mods = map(data,sleepLM),tidy = map(mods,broom::tidy))
除了 sleepBC()
而不是 broom:tidy()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。