如果之前有人问过这个问题,或者我错过了一些明显的事情,我提前道歉。
我有两个数据集,“旧数据”和“新数据”
set.seed(0)
olddata <- data.frame(x = rnorm(10, 0,5), y = runif(10, 0, 5), z = runif(10,-10,10))
newdata <- data.frame(x = -5:5, z = -5:5)
我从旧数据创建模型,并希望从新数据中预测值
mymodel <- lm(y ~ x+z, data = olddata)
predict.lm(mymodel, newdata)
但是,我想将“newdata”中的变量范围限制为训练模型的变量范围。
我当然可以这样做:
newnewdata <- subset(newdata,
x < max(olddata$x) & x > min(olddata$x) &
z < max(olddata$z) & z > max(olddata$z))
但这在许多方面都变得棘手。有没有更少重复的方法来做到这一点?