2015-12-03 4 views
1

Допустим, у меня есть набор данных с y и x1, x2, xp переменные. Я хочу, чтобы все мои предсказатели соответствовали сплайнам.Как я могу поместить все переменные с помощью сплайнов с gam в R без ввода каждого из них?

Например:

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

Как я могу это сделать, не вводя каждую переменную? Если я хотел бы поместить модуль без первых двух без использования сплайнов. Как я могу это сделать?

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

Вы пытались do 'y ~. - x1 - x2, data'? – etienne

ответ

1

Может быть, это может помочь вам:

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) 
+0

Я думаю, что порядок ваших параметров нужно поменять местами или назвать данные = данные. – atiretoo