[R] Dynamically build functional expression and taking derivative

Oleksandr Dyklevych diklevich at gmail.com
Thu Dec 9 17:59:46 CET 2010


I'm faced the next problem:
suppose I have a vector of some coefficient and for some purpose from  
these coefficients I need dynamically build a functional expression  
(because, the number of elements in the vector of coefficients might  
differ each time). So, I'm trying to do like this (let the number of  
coefficients be 3):

Building expression
> foo <- gsub(",","*",toString(paste('(p',1:3,'*x +  
> (1-p',1:3,'))',sep="")))
> foo
[1] "(p1*x + (1-p1))* (p2*x + (1-p2))* (p3*x + (1-p3))"

But now, how can I take derivative of this expression w.r.t. "x"?

> dfoo <- D(foo,"x") #doesn't work as well as
> dfoo <- D(as.expression(foo),"x")

May be there are other ways to handle this kind of situation?

Best regards,

More information about the R-help mailing list