【发布时间】:2015-10-31 10:45:27
【问题描述】:
我正在尝试使用 predict 将我的模型应用于一个时间段的数据,以查看另一时间段的值可能是什么。我做了这个 成功用于一个数据集,然后使用相同的代码尝试另一个数据集 并得到以下错误:
Error in eval(predvars, data, env) :
numeric 'envir' arg not of length one
两个数据集的唯一区别是我的第一个数据集的预测模型有两个预测变量,而我的第二个数据集的模型只有一个。为什么这会有所作为?
我的dougfir.csv 只包含两列,每列有三十个数字,
标记为height 和dryshoot。
我的线性模型是:
fitdougfir <- lm(dryshoot~height,data=dougfir)
它变得有点复杂(而且很混乱,抱歉!我是 R 新手)因为我
然后制作了第二个 .csv - 我用来制作模型的那个包含值
从六月开始。我的新 .csv(称为 alldatadougfir.csv)包含值
从 10 月开始,还包含一个 date 列,用于标记
值"june" 或"october"。
我做了以下按日期分隔高度数据:
alldatadougfir[alldatadougfir$date=="june",c("height")]->junedatadougfir
alldatadougfir[alldatadougfir$date=="october",c("height")]->octoberdatadougfir
然后我想使用我的 6 月模型来预测我 10 月的旱芽,使用 高度作为我的变量,我做了以下事情:
predict(fitdougfir, newdata=junedatadougfir)
predict(fitdougfir, newdata=octoberdatadougfir)
再次,我成功地使用了相同的数据集 - 唯一的 不同之处在于我在成功数据集中的模型有两个预测器 变量而不是我在这个数据集中的一个变量(高度)。
【问题讨论】:
-
你能提供一个reproducible example吗?
-
另一个区别是,在第一个预测中,您使用构建模型的数据作为新数据。那是对的吗?您提到“...使用我的 6 月模型来预测我 10 月的旱芽...”。
-
正如@BenBolker 所说,社区需要一个可重现的示例来帮助您。
-
@SamThomas,非常接近,但我认为值得解释为什么......