我能够使用下面的代码创建一个包含 12 个线性模型结果的小标题作为列表。这些是平均月流量 (MMF) 和流域面积 (DRAINAGE_AREA_GROSS) 之间的线性模型,输出可以在图中看到。
MMF_reggression <- flow_average %>% group_by(Month) %>%
do(model = lm(MMF ~ DRAINAGE_AREA_GROSS, data = .))
我想将列表的系数导出到 CSV,但我在处理它们时遇到麻烦,因为它们在这个小标题中。
所以没有世界末日,但不想手动将它们放入 .csv 中。任何对此问题的解决方案将不胜感激。
我无法让这样的方法发挥作用:
write.csv(coef(MMF_reggression[[,2]]), file = 'regionalregression.csv')
我可以将结果保存在文本文件中:
sink("model_summary.txt")
print(MMF_reggression[[2]])
sink()
如果
model具有 coefficients 变量,则首先取消列出和汇总应该与
write.csv
一起使用。
write.csv(MMF_reggression %>%
rowwise() %>%
summarize(unlist(model)["coefficients"]),
file = "regionalregression.csv")
我建议
broom::tidy()
将您的结果转换为工作流程友好的格式。
library(tidyverse)
library(broom)
mtcars %>% group_by(cyl) %>%
do(model = lm(hp ~ mpg, data = .)) %>%
mutate(tbl = list(tidy(model))) %>%
unnest(tbl) %>%
select(-model)
# A tibble: 6 × 6
cyl term estimate std.error statistic p.value
<dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 4 (Intercept) 147. 35.6 4.14 0.00252
2 4 mpg -2.43 1.32 -1.84 0.0984
3 6 (Intercept) 164. 147. 1.12 0.313
4 6 mpg -2.12 7.40 -0.286 0.786
5 8 (Intercept) 294. 84.3 3.49 0.00445
6 8 mpg -5.65 5.51 -1.02 0.326
然后您可以
select()
选择要保留的任何列并将其写入 CSV。
我建议
lmList(hp~mpg|cyl, data = mtcars) |> broom.mixed::tidy()
但是
tidy
方法似乎被ATM机破坏了......???