如何在R中使用带有gam的样条函数来拟合所有变量而不键入每个变量?

时间:2015-12-03 14:07:08

标签: r gam mgcv

假设我的数据集包含yx1x2xp个变量。 我想用样条拟合所有预测变量。

例如:

gam_object = gam(y ~ s(x1) + s(x2) + s(xp), data)

如何在不键入每个变量的情况下执行此操作?如果我想在不使用样条线的情况下安装前两个模块。我怎样才能做到这一点?

gam_object2 =  gam(y ~ x1 + x2 + s(x1) + s(x2), data)

1 个答案:

答案 0 :(得分:4)

也许这可以帮到你:

p<-10
as.formula(paste0("y~",paste0("s(x",1:p,")",collapse="+")))

如果您不想使用前两个或更多通常不使用某些特定变量的样条线,请使用:

data<- #yours data
use<-c(3:6,9:10)
dontuse<-c(1:2,7:8)
form<-as.formula(
 paste0("y~",paste0("s(x",use,")",collapse="+"),"+",paste0("x",dontuse,collapse="+"),collapse=""))

然后运行模型:

gam(data=data,formula=form,family=gaussian)