2017-08-15 9 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來繪製它們。