从R中的lm中提取变量以使用预测

DSU*_*SUR 2 r predict lm

说我运行以下内容 lm

my.model = lm(distance ~ speed, data = my.data)
Run Code Online (Sandbox Code Playgroud)

我可以做以下事情来做一个元素预测

predict(my.model, speed = c(40))
Run Code Online (Sandbox Code Playgroud)

情况就是这样:我有一个lm,我知道它做了什么(它是速度距离的回归),但我不知道回归量被命名为速度.我怎么还能预测?

predict(my.model, ??? = c(40))
Run Code Online (Sandbox Code Playgroud)

我可以得到回归者的名字,names(my.model$coefficients)但我无法弄清楚如何将其传递给预测

predict(my.model, names(my.model$coefficients)[2] = c(40)) 不行

有什么建议?

谢谢!

G. *_*eck 5

使用内置BOD示例运行lm,然后将一个元素列表或数据框传递给predict使用setNames以适当地设置名称:

fm <- lm(demand ~ Time, BOD)

predict(fm, setNames(list(5.5), variable.names(fm)[2]))
##        1 
## 17.98929 
Run Code Online (Sandbox Code Playgroud)

根本不使用不同的方法predict.fm从上面使用:

coef(fm) %*% c(1, 5.5)
##          [,1]
## [1,] 17.98929
Run Code Online (Sandbox Code Playgroud)