I have an example dataset below.
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))
Suppose I want to create separate models for columns x3 , x4 , x5 based on columns x1 and x2 . for instance
lm1 <- lm(x3 ~ x1 + x2) lm2 <- lm(x4 ~ x1 + x2) lm3 <- lm(x5 ~ x1 + x2)
Then I want to take these models and apply them to the test suite using the forecast, and then create a matrix in which each model result will be displayed as a column.
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)
This is a simplified version where you can do it step by step, the actual data is too large. Is there a way to create a function or use the for statement to combine this in one or two steps?