拟合 GAM 时出现 as.data.frame.default 错误
Error in as.data.frame.default when fitting a GAM
我正在使用 gam
R 包。当我使用 step.Gam()
执行逐步回归时,出现此错误:
Error in as.data.frame.default(data, optional = TRUE) :
cannot coerce class ‘"function"’ to a data.frame
这是一个可重现的例子:
library(dplyr)
library(gam)
data(mtcars)
df = mtcars %>% mutate(vs = as.factor(vs),
am = as.factor(am))
f0 = as.formula("mpg ~ cyl + disp + hp + drat + wt + qsec + vs + am + gear + carb")
m.gam.0 = gam(f0, data = df)
f.gam.step = gam.scope(frame = (df %>%
select(mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb) %>%
as.data.frame()),
response = 1,
arg=c("df=4"))
m.gam.step = step.Gam(object = m.gam.0, scope = f.gam.step, direction="both")
为什么会出现此错误?
错误是因为 df
是基本 R 函数,因此它将变量 df
视为函数而不是数据帧。如果您将数据框名称更改为其他不是函数名称的名称而不是 df
它应该可以工作。
我正在使用 gam
R 包。当我使用 step.Gam()
执行逐步回归时,出现此错误:
Error in as.data.frame.default(data, optional = TRUE) :
cannot coerce class ‘"function"’ to a data.frame
这是一个可重现的例子:
library(dplyr)
library(gam)
data(mtcars)
df = mtcars %>% mutate(vs = as.factor(vs),
am = as.factor(am))
f0 = as.formula("mpg ~ cyl + disp + hp + drat + wt + qsec + vs + am + gear + carb")
m.gam.0 = gam(f0, data = df)
f.gam.step = gam.scope(frame = (df %>%
select(mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb) %>%
as.data.frame()),
response = 1,
arg=c("df=4"))
m.gam.step = step.Gam(object = m.gam.0, scope = f.gam.step, direction="both")
为什么会出现此错误?
错误是因为 df
是基本 R 函数,因此它将变量 df
视为函数而不是数据帧。如果您将数据框名称更改为其他不是函数名称的名称而不是 df
它应该可以工作。