Я не совсем уверен, что вы хотите сделать, но если вы просто хотите просто создать сплайны с различными степенями свободы, вам нужно перебирать их, 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)
)