[R] problem with ecdf : "missing C_R_approxfun" message

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Oct 24 10:04:01 CEST 2013


On 24/10/2013 07:54, Olivier Eterradossi wrote:
> Hi list,
>
> In June 2013, using R.2.15.1 (i386) on Windows 7, I calculated a set of ecdf which I stored in lists of records having a "size.ecdf" field, with following structure :

Note that R 2.15.1 was not current even then.

> [skip previous structure...]
> $ size.ecdf   :function (v)
>    ..- attr(*, "class")= chr [1:3] "ecdf" "stepfun" "function"
>    ..- attr(*, "call")=length 2 ecdf(test.moms[, "m.pxs"])
>    .. ..- attr(*, "srcref")=Class 'srcref'  atomic [1:8] 12 1 12 36 1 36 12 12
>    .. .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x07d7b3b0>
> [skip following structure...]
>
> In September I upgraded to R.3.0.1 under the same OS

And R 3.0.2 has been out for nearly a month now: see the posting guide.

> I need to use my previously recorded ecdfs again, and try to plot one  as in :
>
>> plot(first.list[[1]]$size.ecdf,col=couleurs[1],main="first ecdf")
> Which returns :
> Erreur dans x(0.5 * (ti.l + ti.r)) : objet 'C_R_approxfun' introuvable
> Sorry it's in French  ;-)  , it translates to "error in x(0.5 * (ti.l + ti.r)) : missing object 'C_R_approxfun' "
>
> The same message prints when trying to use other ecdf methods, or other records in my lists.
>
> I first searched the help and archives without success, here are four questions I cannot answer :
>
> What is this "C_R_approxfun" object and what is it intended to do ?
> What may have caused it is missing now (and was not in June) ?
> Does this mean that I should have recorded other useful parameters in June (such as environment parameters) ?
> Or anything else I cannot guess ?
>
> Thanks for helping, I'm stuck and I would prefer not to calculate all my "old" ecdfs again !

You have to.  The ones you have contain references to internal code 
found only in R < 3.0.0.

Note that storing objects in .RData is never intended to be a permanent 
form of storage, and you have done a *major* version update.  You should 
expect to have to re-create objects from your scripts.

It is actually rather easy to update the objects.  Consider Fn12 from 
example(ecdf) (which is random, so your mileage will vary).  The data 
are in the environment of Fn12, so

Fn12 <- eval(attr(Fn12, "call"), environment(Fn12))

recreates it.


>
> Regards, Olivier
>
> --------------------------
> Olivier ETERRADOSSI
> Maître-Assistant, HDR
> Ecole des Mines d'Alès (C2MA, site de Pau)
> Ingénierie de l'aspect visuel et tactile des matériaux
> Pôle « Recherche sur les Interactions des Matériaux avec leur Environnement » (RIME)
> Hélioparc, 2 av. P. Angot, F-64053 PAU CEDEX 9
> Tel : 05 59 30 90 35 (direct) - 05 59 30  54 25 (std)
> Fax : 05 59 30 63 68
> http://www.mines-ales.fr<http://www.mines-ales.fr/>
> http://www.mines-telecom.fr<http://www.mines-telecom.fr/>


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list