Я могу построить формулу, которая делает то, что я хочу, начиная с символьных версий терминов в формуле, но я спотыкаюсь, начиная с объекта формулы:
form1 <- Y ~ A + B
form1[-c(1,2)][[1]]
#A + B
Теперь, как создать объект формулы, который выглядит так:
Y ~ poly(A, 2) + poly(B, 2) + poly(C, 2)
Or:
Y ~ pspline(A, 4) + pspline(B, 4) + pspline(C, 4)
Кажется, это может включать рекурсивную прогулку по RHS, но я не получаю прогресса. Мне просто пришло в голову, что я мог бы использовать
> attr( terms(form1), "term.labels")
[1] "A" "B"
А затем используйте подход as.formula
(character-expr), но мне очень хотелось бы увидеть lapply (RHS_form, somefunc)
версию функции polyize
(или, возможно, polymer
?).