我想知道為什么我data123在allEffects(fit2, ...)下面的呼叫中不被識別?有沒有辦法解決這個問題?
我的“R 版本 4.0.0 (2020-04-24)”,windows 10 機器。
Error object 'data123' not found
library(effects)
m1 <- lm(mpg ~ hp cyl, data = mtcars)
foo <- function(fit,...) {
data123 <- eval(fit$call$data)
fit2 <- lm(fit$call$formula, data = data123)
allEffects(fit2, ...) #### 'data123' not recognized HERE
}
#----------EXAMPLE OF USE:
foo(m1)
# Error during wrapup: object 'data123' not found
uj5u.com熱心網友回復:
該allEffects功能對環境非常挑剔。您需要確保要使用的資料集與用于模型的公式處于相同的環境中。嘗試
foo <- function(fit,...) {
data123 <- eval(fit$call$data)
formula123 <- eval(fit$call$formula)
environment(formula123) <- environment()
fit2 <- lm(formula123, data = data123)
allEffects(fit2, ...)
}
foo(m1)
在這里,我們顯式地提取公式并將其環境重置data123為定義的函式體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/367383.html
下一篇:我如何計算R中的處理和未處理
