Параметры подачи в функцию в виде списка в R - PullRequest
0 голосов
/ 29 ноября 2018

Я хотел бы сравнить различные модели и, чтобы сэкономить время, я подумал о том, можно ли ввести в список значений для одного аргумента функции и, возможно, отобразить результаты.

Мой конкретный пример - меня интересует сглаживание сплайнов, поэтому модель выглядит так:

fit <- smooth.splines( x=train_x, y=train_y, df=seq(2, 20, by=0.5) )

, что все в порядке, но как выбрать различные подгонки с помощью "df" s?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Я не совсем уверен, что вы хотите сделать, но если вы просто хотите просто создать сплайны с различными степенями свободы, вам нужно перебирать их, smooth.spline не векторизован в своем параметре df:

fits = lapply(seq(2, 20, by = 0.5), smooth.spline, x = train_x, y = train_y, w = NULL)

При таком вызове lapply изменит параметр df;Вы также можете написать это более явно:

fits = lapply(
    seq(2, 20, by = 0.5),
    function (df) smooth.spline(x = train_x, y = train_y, df = df)
)
0 голосов
/ 29 ноября 2018

Ужасно, но вы могли бы сделать цикл

fits_out <- list()
for(i in 1:50){
fits[[i]] <- smooth.splines( x=train_x, y=train_y, df=i )
}

Тогда вы можете получить доступ к каждой подгонке модели из объекта списка

...