Hi,
I have tried this (just to practice):
assign2 <- function(x, ...){
assign(x, ..., envir=.GlobalEnv)
attr(get(x, envir=.GlobalEnv), "creation.time") <- Sys.time()
}
assign2("y", 1:4)
Error in attr(get(x), "creation.time") <- Sys.time() :
could not find function "get<-"
Why doesn't it work?
If I remove the attr() part,
identical(y, get("y")) returns TRUE, so why attr() cannot work with it?
Thanks in advance for the clarification,
Ivan
Le 11/11/2010 11:16, Michael Bedward a écrit :
Hi Tal,
Here's a way of doing the first bit...
assign2<- function(x, ...) {
xname<- deparse(substitute(x))
assign(xname, ...)
x<- get(xname)
attr(x, "creation.time")<- Sys.time()
assign(xname, x, pos=.GlobalEnv)
}
Michael
On 11 November 2010 20:37, Tal Galili<tal.gal...@gmail.com> wrote:
My objective is to start having meta-data on objects that I create.
For example, consider the following function:
assign2<- function(x, ...)
{
assign("x", ...)
attr(x, "creation time")<- Sys.time()
x<<- x
}
assign2("x", 1:4)
"assign2" assigns to x the vector 1:4, and it then also adds the creation
time of the object.
(Hat tip goes to Peter Alspach for pointing me to the concept of adding meta
data to an object using attr)
But this function has several major limitations:
1) It will not work for any assignment other then "x". For example
assign2("y", 1:4)
Doesn't work.
How might this be fixed ?
2) This function will probably need to also search the parent environment if
the variable already exists. If it does, then there should be a "update
date" instead of "creation date". But for that to work, I'll need a
solution for problem 1.
3) How will this handle a case when we are updating only a subset of the
items? (for example: assign2("x[1:2]", 8:9) )
4) My real intention is to somehow change the "<-" operator (not simply the
assign). I am unsure as to how to do that.
5) Are there any major pros/cons to the adding of such meta-data to objects?
(for example, excessive overhead on memory/performance)
6) Is there already some system that knows how to do this in R (which I am
simply ignorant about)?
Thanks for following through, and for any suggestions/thoughts you might
have.
Best,
Tal
----------------Contact
Details:-------------------------------------------------------
Contact me: tal.gal...@gmail.com | 972-52-7275845
Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
www.r-statistics.com (English)
----------------------------------------------------------------------------------------------
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
--
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calan...@uni-hamburg.de
**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/mitarbeiter.php
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.