使用lm/glm/t.test/chisq.test等模型或者檢驗完成分析後,結果怎麼提?html
複製粘貼仍是broom一鍵生成?web
載入數據,R包微信
mtcars數據集
#載入內置數據集mtcars
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
broom-R包
#載入R包
library(broom)
??broom #查看broom包用法
broom主要提供以下三種結果整理函數app
tidy
: 返回模型的統計結果的數據框;lessaugment
: 返回模型參數並增長預測和殘差等模型結果;機器學習glance
: 返回模型的一行重要結果,包含R^二、矯正後的R^2,以及剩餘標準偏差。ide
迴歸模型
函數
線性迴歸
#構建簡單線性迴歸模型
lmfit <- lm(mpg ~ wt, mtcars)
summary(lmfit)
summary(lmfit)$coef
結果如上,只須要將上面的P值,R squared,Adjusted R squared等關心的模型結果,用時間和耐心「精確」的複製粘貼出來就能夠了!
學習
嫌麻煩的小夥伴能夠用broom試一下,其實只一行就行。url
R-broom提取結果
1)tidy函數
library(broom)
#返回模型的統計結果的數據框
tidy(lmfit)
看起來和summary(lmfit)$coef差很少,但仍是有區別的:
coef(summary(lmfit)) 中,terms保存在rawname中;
列名爲Pr(>|t|)而不是p.value;
2)augment()函數
#提取回歸中每一個原始點的擬合值和殘差等信息
augment(lmfit)
返回每一個原始點的參數值以及模型的擬合值,殘差等結果,同時爲避免列名重複,模型結果的列名以.開始。
3) glance()函數
#提取R squared,Adjusted R squared等
glance(lmfit)
對於廣義線性模型(glm) 和非線性模型(nls)一樣適用,可自行嘗試。
生存分析
生信分析經常使用的生存分析,結果是否能夠提取呢?
答案是能夠的,參數上稍微有點區別。
生存分析示例
#library("survminer") #載入R包
library("survival") #載入R包
fit_cox <- coxph(Surv(time, status)~sex, data=lung)
summary(fit_cox)
基礎方法提取
#經過函數來提取關鍵結果
coef(summary(fit_cox))
#提取HR和95%置信區間
exp(coef(fit_cox))
#提取HR的95%置信區間
exp(confint(fit_cox))
broom函數提取
#生存分析,提取的是exp(coef)相關信息,exponentiate = TRUE
tidy(fit_cox,exponentiate = TRUE)
假設檢驗
除模型結果外,broom還能夠用於 t.test
, cor.test
和wilcox.test
檢驗的結果提取。
T檢驗
tt <- t.test(wt ~ am, mtcars)
tidy(tt)
返回統計值,P值,置信區間,檢驗方法等信息;
wilcox.test
wt <- wilcox.test(wt ~ am, mtcars)
tidy(wt)
注:上述返回值只有一行,與 glance
函數返回相同的結果,自行嘗試。
chisq.test
chit <- chisq.test(xtabs(Freq ~ Sex + Class, data = as.data.frame(Titanic)))
tidy(chit)
#只有chisq.test檢驗能夠使用augment函數
augment(chit)
參考資料:
http://127.0.0.1:18603/library/broom/doc/broom.html
◆ ◆ ◆ ◆ ◆
【以爲不錯,右下角點個「在看」,期待您的轉發,謝謝!】
本文分享自微信公衆號 - 生信補給站(Bioinfo_R_Python)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。