I added "plogis" to the derivative table in the development version of R; the patch against yesterday's R-devel src/deriv/main.c is available at http://www.zoology.ufl.edu/bolker/deriv_patch.txt .
I pretty much followed the framework of the other symbols; here was my incantation - } else if (CAR(expr) == PlogisSymbol) { - ans = simplify(TimesSymbol, - PP_S(TimesSymbol, - PP_S2(ExpSymbol, - PP_S2(MinusSymbol,CADR(expr))), - PP_S(PowerSymbol, - PP_S(PlusSymbol, - Constant(1.), - PP_S2(ExpSymbol, - PP_S2(MinusSymbol,CADR(expr)))), - Constant(-2.))), - PP(D(CADR(expr),var))); - UNPROTECT(8); It seems to work: > D(quote(plogis(a)),"a") exp(-a) * (1 + exp(-a))^-2 > D(quote(plogis(a+b*x)),"x") exp(-(a + b * x)) * (1 + exp(-(a + b * x)))^-2 * b Any thoughts? I'm sure there's a cleverer way to do this ... Ben Bolker PS I get a minor build error at the end of the compilation (on Ubuntu 8.10): make[2]: *** No rule to make target `VR.ts', needed by `stamp-recommended'. Stop. make[2]: Leaving directory `/usr/local/src/R/R-devel/src/library/Recommended' make[1]: *** [recommended-packages] Error 2 make[1]: Leaving directory `/usr/local/src/R/R-devel/src/library/Recommended' make: *** [stamp-recommended] Error 2 ... don't know if that is important or not.
signature.asc
Description: OpenPGP digital signature
______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel