如何解决在 R 中执行 GAMmgcv 包时,“model.matrix.formula(form, data) 中的错误:数据必须是 data.frame”
寻求一个知道如何解决这个错误或理解为什么会出现这种错误的友好灵魂。
不确定发生了什么,但每次我尝试使用随机效应(bs="re"
,使用 mgcv
包)执行 GAM 时都会出现此错误。这很奇怪,因为不仅出现在新模型上,甚至出现在以前工作的模型上(多次)。
我确保数据没有 NA、科学数据或随机公式。另外,我没有使用日期格式来避免错误,以前是这样工作的。
我也尝试通过 as.data.frame(x)
将数据转换为数据框,但发生了同样的错误。
我一直在玩这个公式,似乎每次出现随机效应 bs="re"
时,要么是其中的 2 个(站点、状态),要么只有其中一个(站点),它是当错误发生时。如果我把它们完全从公式中去掉,它就会完美地工作。
我认为可能是:
更新:它适用于 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 = 自第一次清理以来的天数(数字);
State = 采样状态;
EffortDayC = Effort(沙滩长度、志愿者人数、采样持续时间)*DayC(采样间隔);
下面的 str(x) 输出:
和head的数据好理解一点: enter image description here enter image description here
解决方法
排序!包 agricolae
导致与 mgcv
包不兼容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。