在 R 中仅将 lm() 与一个变量一起使用

Using lm() with just one variable in R

我有一些棒球统计数据,每个赛季的打点数,比方说:

player      s1  s2  s3
Brian_Giles 66  68  70
Joe_Thomas  71  72  71
Robin_Yount 71  69  68
Jim_Jones   66  66  65

我想对这些数据使用 lm() 进行简单的线性回归,以预测他们在第 4 季的 RBI #s。我在这里需要另一个变量来创建我的公式吗?我将如何最简单地完成此线性回归?

我正在尝试完成本教程 (http://www.r-bloggers.com/wp-content/uploads/2009/11/simpleLinRegExample1.txt),这似乎我可能需要第二个变量,(显然我是线性回归的新手)但我想不通出它应该是什么。这三个季节数据的最佳拟合线的斜率?

以下是在 R 中执行此操作的方法:

DF <- read.table(text = "player      s1  s2  s3
Brian_Giles 66  68  70
Joe_Thomas  71  72  71
Robin_Yount 71  69  68
Jim_Jones   66  66  65", header = TRUE)

library(reshape2)
DF <- melt(DF, id = "player", variable.name = "season")
DF$season <- as.integer(DF$season)

fit <- lm(value ~ season * player, data = DF)
summary(fit)
setNames(predict(fit, newdata = data.frame(player = unique(DF$player),
                                  season = 4)),
         unique(DF$player))
#Brian_Giles  Joe_Thomas Robin_Yount   Jim_Jones 
#   72.00000    71.33333    66.33333    64.66667

提供答案并不代表我认可您选择的方法。