2017-08-15 82 views
4

我有这样一个数据帧:否则对于每个组的数据帧的线性拟合,检查异

ORD exp type   mu 
1 Combi pH=7 exp_F mu 0.15637365 
2 Combi pH=7 exp_F mu 0.12817901 
3 Combi pH=7 exp_F mu 0.13392221 
4 Combi pH=7 exp_F mu 0.09683254 
5 Combi pH=7 exp_F mu 0.11249738 
6 Combi pH=7 exp_F mu 0.10878719 
7 Combi pH=7 exp_F mu 0.11019295 
8 Combi pH=7 exp_F mu 0.12100511 
9 Combi pH=7 exp_F mu 0.09803942 
10 Combi pH=7 exp_F mu 0.13842086 
11 Combi pH=7 exp_F mu 0.12778964 
12  ORD0793 exp_F mu 0.13910441 
13  ORD0793 exp_F mu 0.12603702 
14  ORD0793 exp_F mu 0.12670842 
15  ORD0795 exp_F mu 0.12982122 
16  ORD0795 exp_F mu 0.13648100 
17  ORD0795 exp_F mu 0.13593685 
18  ORD0799 exp_F mu 0.13906691 
continues... 

我想这样做的线性调整像lm(mu~ORD, data=df)但为每个组类型和EXP的。我曾尝试以下,但它不工作..:

intsl <- df %>% group_by(exp,type) %>% 
    fortify(lm(mu~ORD)) %>% 
    select(exp,type, .fitted, .resid) 

我需要使用强化,因为我需要.fitted和.resid领域以后做将多重排序按类型地块和使用facet_grid实验值包含在ggplot为了检查是否有异方差在每个拟合的模型..像但在一个组织的多孔: enter image description here

有什么建议吗? :<

+0

我不知道它是否会直接回答你的问题(因此我没有发布答案),但我发现'modelr'包使得很多回归任务变得更容易。 –

+0

除了下面的建议'broom :: augment'的答案外,它听起来像所有你需要的是将'+ facet_grid(type〜exp)'添加到你的ggplot调用中。 – Brian

回答

1

ggplot2包中的fortify()文档说明该方法将被弃用,并且应该使用broom包。基于该信息here,你应该做这样的事情:

library(dplyr) 
library(broom) 

intsl <- df %>% 
    group_by(exp, type) %>% 
    do(fit = lm(mu ~ ORD, .) 

intsl %>% augment(fit) 

这应该给你你曾经组的回归,回归变量,以及额外的输出为每个观察,如变量的数据帧.fitted.resid,所以你可以直接用ggplot来绘制它们。