簡體   English   中英

從R中的“ lm”對象恢復數據?

[英]recovering data from an “lm” object in R?

我想知道是否有辦法從R中lm對象的輸出中重新獲取(恢復) jen的數據, 假設我們不知道人名是什么,而只知道jen作為預測變量的作用?

換句話說,如何從lm對象中重新獲取預測數據?

數據如下:

q = data.frame(bob = 1:5 - 3, jen = c(1.7, 2.6, 2.5, 4.4, 3.8) - 3)
m <- lm(bob ~ jen, q)

這是我嘗試未成功的嘗試:

eval(names(m$coefficients)[2])

對的,這是可能的:

m$model[, 2]
# [1] -1.3 -0.4 -0.5  1.4  0.8

或者,如果您也想看到名稱,

m$model[, 2, drop = FALSE]
#    jen
# 1 -1.3
# 2 -0.4
# 3 -0.5
# 4  1.4
# 5  0.8

要么

q[[names(m$model)[2]]]
# [1] -1.3 -0.4 -0.5  1.4  0.8
q[, names(m$model)[2]]
# [1] -1.3 -0.4 -0.5  1.4  0.8
q[, 2]
# [1] -1.3 -0.4 -0.5  1.4  0.8
q[[2]]
# [1] -1.3 -0.4 -0.5  1.4  0.8
q[, names(m$model)[2], drop = FALSE]
#    jen
# 1 -1.3
# 2 -0.4
# 3 -0.5
# 4  1.4
# 5  0.8
q[, 2, drop = FALSE]
#    jen
# 1 -1.3
# 2 -0.4
# 3 -0.5
# 4  1.4
# 5  0.8

另一種方法是使用來自 augment為您提供模型的整理內容。

q <- data.frame(bob = 1:5 - 3, jen = c(1.7, 2.6, 2.5, 4.4, 3.8) - 3)
m <- lm(bob ~ jen, q)

broom::augment(m)

#   bob  jen    .fitted   .se.fit     .resid      .hat    .sigma    .cooksd .std.resid
# 1  -2 -1.3 -1.6595745 0.6607174 -0.3404255 0.5595745 1.0191405 0.21426617 -0.5807632
# 2  -1 -0.4 -0.5106383 0.4273013 -0.4893617 0.2340426 1.0069205 0.06122685 -0.6330542
# 3   0 -0.5 -0.6382979 0.4444382  0.6382979 0.2531915 0.9473309 0.11854243  0.8362420
# 4   1  1.4  1.7872340 0.6938041 -0.7872340 0.6170213 0.6009252 1.67091751 -1.4402230
# 5   2  0.8  1.0212766 0.5121137  0.9787234 0.3361702 0.6698641 0.46834095  1.3600185

這也可以是僅返回jen值的子集。

broom::augment(m)$jen

# [1] -1.3 -0.4 -0.5  1.4  0.8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM