簡體   English   中英

“terms.formula(公式,數據=數據)中的錯誤:'。' 在公式中,在老鼠的“with()”中沒有“數據”參數”function

[英]"Error in terms.formula(formula, data = data) : '.' in formula and no 'data' argument" within mice's "with()" function

我正在使用 MICE package 來估算一些數據,然后將回歸結果匯總在一起。 出於某種原因,我在嘗試使用“。”時遇到錯誤。 運算符,這意味着我想將數據中的所有變量用作自變量。 我的代碼示例: pooled_results <- with(mids_object,glm(DEATH~.,family=binomial))

我得到了錯誤:

Error in terms.formula(formula, data = data): '.' in formula and no 'data' argument

在“with()”function 中是否有其他約定可以執行此類操作? 我不明白為什么這不起作用。

當你調用一個擬合函數時,你通常可以使用~. 作為表示“在右側包含所有其他可用變量”的快捷方式。 請參閱此問題以獲取一些解釋, ~的含義。 (波浪號)參數? . 但這僅在將data參數提供給 function 時才有效,否則 function 將不知道應該在哪里找到其他變量。 它不會開始在您的環境中搜索它認為有用的任何東西,這是一件好事。

為避免此錯誤,您應該明確列出要使用的變量。 所以,這行不通

library(mice)
imps <- mice(airquality, m = 5, predictorMatrix = quickpred(airquality)
mods <- with(imps, glm(Ozone ~ .))
#> Error in terms.formula(formula, data = data): '.' in formula and no 'data' argument

但是改成這個會起作用

mods <- with(imps, glm(Ozone ~ Solar.R + Wind + Temp + Month + Day))

我們還可以使用一個技巧,將數據參數設置為data = data.frame(mget(ls())) ,將所有數據從插補中提取到 dataframe 並將其傳遞給擬合 function。 這也可以,所以我們可以使用

mods <- with(imps, glm(Ozone ~ ., data = data.frame(mget(ls()))))

我更喜歡列出我想在 model 中使用的變量。 我認為這樣可以更輕松地閱讀代碼並了解正在發生的事情。

暫無
暫無

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

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