在R中,我經常需要循環訪問類型對象列表lm
(例如glm
,lme
,clm
),並使用新公式或其他參數更新它們。我使用lapply()
這樣做,因爲它以相同的列表格式返回它們,並且名稱完好無損,所以我可以繼續此過程。在R中,如何動態使用update()?
有時候,我傳遞的論點是動態的,而且每個模型都有所不同。例如,
lapply(names(mylist) function(ii) {
jj<-myotherlist[[ii]];
update(mylist[[ii]],.~.+jj)
})
其中jj
是被添加到列表中的每個模型的術語,並且在一些其他列表被定義對每個模型的基礎。
比方說,一個特定的模型預期的結果公式應該是y~a+b+c
。取而代之的是,所產生的lm
對象內部調用對象包含y~a+b+jj
。因此,在某些情況下導致lm
對象可以正常工作,但每當公式需要進行評估,它的錯誤,因爲jj
早已不復存在。有沒有推薦的方法要麼力update()
擴大它的參數中所有的變量時,其輸出寫入call
對象或強制使用該call
對象,以評估在lm
對象的內部背景下的呼叫,而不是全球範圍內的功能,這樣至少我可以東西新的變量進入model
或data
對象lm
風格的對象通常包含哪些內容?
AND,如果用動態變量更新的部分是數據參數會怎樣?例如: -
data=cbind(sharedByAllModels,y=kk)
...其中kk
是唯一的當前模型(也許是某種在sharedByAllModels數據幀某些列的聚集)。