簡體   English   中英

在 R 中執行 GAM(mgcv 包)時出現“model.matrix.formula(form, data) 中的錯誤:數據必須是 data.frame”

[英]"Error in model.matrix.formula(form, data) : data must be a data.frame" while doing a GAM (mgcv package) in R

尋求一個友好的靈魂,知道如何解決這個錯誤或者理解為什么會出現這個錯誤。

不完全確定發生了什么,但每次我嘗試使用隨機效果( bs="re" ,使用mgcv包)進行 GAM 時都會出現此錯誤。 這很奇怪,因為不僅出現在新模型上,甚至出現在以前工作的模型上(多次)。 我確保數據沒有 NA、科學數據或隨機公式。 此外,我沒有使用日期格式來避免錯誤,以前是這樣工作的。

我還嘗試通過as.data.frame(x)將數據轉換為數據框,但發生了同樣的錯誤。

我一直在玩這個公式,似乎每次出現隨機效應bs="re"時,無論是其中的 2 個(站點、州)還是只有其中一個(站點),都會出現錯誤發生。 如果我將它們完全排除在公式之外,它就會完美地工作。

我想這可能是:

  1. 與我可能已經安裝的另一個 package 存在一些不兼容性,但試圖解決這個問題但沒有任何效果。 刪除了所有最近安裝的軟件包,錯誤仍然存在。

  2. 其他可能是對mgcv package 的任何更新?

更新:它適用於 R 軟件,但不適用於 R 工作室。

有沒有人知道如何解決這個問題或為什么會出現這個問題

以下 model 以前可以工作但不再工作,每次都給我提到的錯誤

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 = State 的采樣;

EffortDayC = Effort(海灘長度、志願者人數、采樣時間)*DayC(采樣間隔);

下面的str(x) output:

在此處輸入圖像描述

和頭部的數據更好理解一點: enter image description here enter image description here

排序! package agricolae導致與mgcv package 不兼容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM