我在下面有一个示例数据集。
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
x2
lm1 <- lm(x3 ~ x1 + x2)
lm2 <- lm(x4 ~ x1 + x2)
lm3 <- lm(x5 ~ x1 + x2)
然后,我想将这些模型应用到使用 predict 的测试集,然后创建一个矩阵,其中每个模型结果作为一列。
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 语句将其组合成一个或两个步骤?