正在从“恢复数据”;lm";R中的对象?
我想知道是否有一种方法可以从R中正在从“恢复数据”;lm";R中的对象?,r,broom,R,Broom,我想知道是否有一种方法可以从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] -
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
或
另一种方法是使用
augment
from为您提供模型的整洁内容
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
无需如此复杂,您可以获得预测值的名称,如标签(术语(m))-然后在现有答案的基础上构建-
m[[“model”]][标签(术语(m))]
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
broom::augment(m)$jen
# [1] -1.3 -0.4 -0.5 1.4 0.8