[R] Age of an object?

Peter Dalgaard p.dalgaard at biostat.ku.dk
Wed Dec 14 17:16:16 CET 2005


[Got stuck in the mail filter: "Too many recipients". Cancelled and
resending.] 

Duncan Temple Lang <duncan at wald.ucdavis.edu> writes:

> In addition to what and how to associate time information
> with an object, I imagine Trevor was also expecting that
> it would be done automatically rather than require
> the user to set the timestamp explicitly.
> To that end, the addTaskCallback()  function allows
> one to register a function that will be invoked at the
> end of each top-level task.  In that function
> call, one can update the timestamp on any (obviously) newly
> assigned value.  That will give the same behaviour as in S-Plus
> as there only top-level assignments are written to disk and so have
> a file modification time.

It's certainly not doable without some notion of "committing". If
every change to every object needs to be preceded by a lookup of the
current date+time, performance would vanish.

A similar, yet different, idea could be to have certain environments
flagged as "timestamped" and have assignment into that environment
check the flag and set the stamp. The obvious candidate for a
timestamped environment is .GlobalEnv, but there could be others.
The semantics of things like for() loops would require careful
attention, though.
 
>   D.
> 
> Henrik Bengtsson wrote:
> > If R would have timestamps telling when any object was last modified, we 
> > could extend R with a 'GNU make'-style functionality (or syntax) 
> > together with some fancy caching to persistent storage (files, data 
> > bases, ...).  That would really nice!  As B.R. and M.M. writes, 
> > timestamping is most suited for higher level data structures and not 
> > simple data types, because the over head would be too large.
> > 
> > /Henrik
> > 
> > 
> > Philippe Grosjean wrote:
> > 
> >>Martin Maechler wrote:
> >>
> >>
> >>>>>>>>"Trevor" == Trevor Hastie <hastie at stanford.edu>
> >>>>>>>>  on Tue, 13 Dec 2005 12:51:34 -0800 writes:
> >>>
> >>>
> >>>   Trevor> It would be nice to have a date stamp on an object.
> >>>
> >>>   Trevor> In S/Splus this was always available, because objects were files.
> >>>
> >>>  [are you sure about "always available"? 
> >>>   In any case, objects were not single files anymore for a
> >>>   long time, at least for S+ on windows, and AFAIK also on
> >>>   unixy versions recently ]
> >>>
> >>>This topic has come up before.
> >>>IIRC, the answer was that for many of us it doesn't make sense
> >>>most of the time: 
> >>
> >>
> >>I remember it was discussed several times. I don't remember why it was 
> >>considered too difficult to do.
> >>
> >>
> >>
> >>>If you work with *.R files ('scripts') in order to ensure
> >>>reproducibility, you will rerun -- often source() -- these files,
> >>>and the age of the script file is really more interesting.
> >>>Also, I *always* use the equivalent of  q(save = "no") and
> >>>almost only use save() to particularly save the results of
> >>>expensive  computations {often, simulations}.
> >>
> >>
> >>OK, now let me give examples where having such an information would ease 
> >>the work greatly: you have a (graphical) view of the content of an 
> >>object (for instance, the one using the "view" button in R commander), 
> >>or you have a graphical object explorer that has a cache to speed up 
> >>display of information about objects in a given workspace (for instance, 
> >>the SciViews-R object explorer). What a wonderful feature it will be to 
> >>tell if an object was changed since last query. In the view, one could 
> >>have a visual clue if it is up-to-date or not. In the object explorer, I 
> >>could update information only for objects that have changed...
> >>
> >>
> >>
> >>>   Trevor> I have looked around, but I presume this information is not available.
> >>>
> >>>I assume you will get other answers, more useful to you, which
> >>>will be based on a class of objects which carry an
> >>>'creation-time' attribute.  
> >>
> >>
> >>Yes, but that would work only for objects designed that way, and only if 
> >>the methods that manipulate that object do the required housework to 
> >>update the 'last-changed' attribute (the question was about last access 
> >>of an object, not about its creation date, so 'last-changed' is a better 
> >>attribute here). If you access the object directly with, let's say, 
> >>myobject at myslot <- newvalue, that attribute is not updated, isn't it?
> >>
> >>Best,
> >>
> >>Philippe Grosjean
> >>
> >>
> >>
> >>>Martin Maechler, ETH Zurich
> >>>
> >>>______________________________________________
> >>>R-help at stat.math.ethz.ch mailing list
> >>>https://stat.ethz.ch/mailman/listinfo/r-help
> >>>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> >>>
> >>>
> >>
> >>
> >>______________________________________________
> >>R-help at stat.math.ethz.ch mailing list
> >>https://stat.ethz.ch/mailman/listinfo/r-help
> >>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> >>
> >>
> > 
> > 
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 
> --
> Duncan Temple Lang                duncan at wald.ucdavis.edu
> Department of Statistics          work:  (530) 752-4782
> 371 Kerr Hall                     fax:   (530) 752-7099
> One Shields Ave.
> University of California at Davis
> Davis, CA 95616, USA
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 

-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907




More information about the R-help mailing list