首页 > 解决方案 > 在 R 中执行 GAM(mgcv 包)时,“model.matrix.formula(form, data) 中的错误:数据必须是 data.frame”

问题描述

寻求一个友好的灵魂,知道如何解决这个错误或者理解为什么会出现这个错误。

不完全确定发生了什么,但每次我尝试使用随机效果(bs="re"带有mgcv包)进行 GAM 时都会出现此错误。这很奇怪,因为不仅出现在新模型上,甚至出现在以前工作的模型上(多次)。我确保数据没有 NA、科学数据或随机公式。此外,我没有使用日期格式来避免错误,以前是这样工作的。

我也尝试通过将数据转换为数据框,as.data.frame(x)但发生了同样的错误。

我一直在玩这个公式,似乎每次出现随机效应bs="re"时,无论是其中的 2 个(站点、州)还是其中一个(站点),都会出现错误。如果我将它们完全排除在公式之外,它就会完美地工作。

我想这可能是:

  1. 与我可能已经安装但尝试解决但没有效果的另一个软件包有些不兼容。删除了所有最近安装的软件包,错误仍然存​​在。

  2. 其他可能是对mgcv包的任何更新?

更新:它适用于 R 软件,但不适用于 R studio。

有没有人知道如何解决这个问题或为什么会出现这个问题

以下模型以前可以工作但不再有效,每次都给我提到的错误

gam_2a <- gam(Total_Items ~ s(DayI0, k=14) + s(Site, State, bs="re"), offset(log(EffortDayC)),data = x,family=poisson(link="log"),method = "REML")

变量说明:

Total_Items = 每个事件发现的碎片数量;

DayI0 = 自第一次清理后的天数(数字);

地点 = 抽样地点(地点在州内);

状态 = 采样状态;

EffortDayC = Effort(海滩长度、志愿者人数、采样时间)*DayC(采样间隔);

下面的 str(x) 输出:

在此处输入图像描述

和头部的数据更好理解一点: enter image description here enter image description here

标签: rnestedgammgcv

解决方案


排序!该软件包agricolae导致与该mgcv软件包不兼容。


推荐阅读