对于作业,我们被要求为表中的两个因子变量的所有配对提供预测。我有两个因素和一个线性模型。我想输出一个表,使得行是一个因子的级别,列是另一个因子的级别,表中的值是这些级别的预测值。
我已经足够轻松地完成了预测,但显示它是导致问题,因为没有任何功能似乎完全可以完成这项工作。我原以为tapply()
可能会这样做,但我似乎无法使用我的线性模型作为函数?有没有办法用我的线性模型中的预测输出一个双向因子表?
newdata = expand.grid(GenericFactor1 = c("1", "2", "3"), GenericFactor2 = c("10","20","30","40"))
pred = predict.lm(linear.model.lm, newdata)
newdata$pred = as.vector(pred)
答案 0 :(得分:1)
据我了解,你有两个因素,你想要创建一个表,其中行与第一个因子的值相关联,列与第二个因子的值相关联,数据是预测相关的因子值对的模型。这种设置由outer
函数很好地处理:
outer(c(1, 2, 3), c(10, 20, 30, 40), function(x, y) {
predict.lm(linear.model.lm, newdata=data.frame(GenericFactor1=x, GenericFactor2=y))
})