[Rd] extending the derivs table/fools rushing in

Gabor Grothendieck ggrothendieck at gmail.com
Thu Aug 14 18:59:50 CEST 2008


While you are at it could you add { to the
table so that this works:

> # this is ok
> f <- function(x) x*x
> D(body(f), "x")
x + x

> # but not g which is same as f
> # except it has { ... } surrounding its body
> g <- function(x) { x*x }
> D(body(g), "x")
Error in D(body(g), "x") : Function '`{`' is not in the derivatives table


2008/8/14 Ben Bolker <bolker at zoology.ufl.edu>:
>
>  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.
>
>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>



More information about the R-devel mailing list