Я прочитал это как желание сделать функции, и я думаю, что ответы agstudy/EDDI, вероятно, сделать это, но я думал, пытаясь его с нуля может быть поучительным :
poly.maker <- function(coefs) { func <- function(x){} #empty func in x
body(func) <- parse(text= paste(seq_along(coefs),"*x^",
(length(coefs)-1):0,collapse="+"))
return(func) }
func2 <- poly.maker(c(1,2,3)) # return a function
func2(3) # now test it out
#[1] 18
Примечание мне нужно поменять порядок, чтобы согласиться с запросом на OP, который я только заметил, после получения различных результатов, чем @dickoa. Это кажется менее неуклюжим:
poly.make2 <- function(coefs) { func <- function(x){}
body(func) <- bquote(sum(.(coefs)*x^.((length(coefs)-1):0)))
return(func) }
func <- poly.make2(c(1,2,5))
func
#function (x)
#sum(c(1, 2, 5) * x^c(2L, 1L, 0L))
#<environment: 0x29023d508>
func(3)
#[1] 20
Ваш последний пример должен быть 6x^2 + 8x + 1, я думаю. –
Да, только что скорректированный – user2548246