我下面有一个示例数据集。
train<-data.frame(x1 = c(4,5,6,4,3,5), x2 = c(4,2,4,0,5,4), x3 = c(1,1,1,0,0,1),
x4 = c(1,0,1,1,0,0), x5 = c(0,0,0,1,1,1))
假设我想为列创建单独的模型x3
, x4
, x5
基于列x1
and x2
。例如
lm1 <- lm(x3 ~ x1 + x2)
lm2 <- lm(x4 ~ x1 + x2)
lm3 <- lm(x5 ~ x1 + x2)
然后,我想采用这些模型并使用预测将它们应用到测试集,然后创建一个矩阵,将每个模型结果作为一列。
test <- data.frame(x1 = c(4,3,2,1,5,6), x2 = c(4,2,1,6,8,5))
p1 <- predict(lm1, newdata = test)
p2 <- predict(lm2, newdata = test)
p3 <- predict(lm3, newdata = test)
final <- cbind(p1, p2, p3)
这是一个简化版本,您可以一步步完成,实际数据太大了。有没有办法创建一个函数或使用 for 语句将其合并为一个或两个步骤?