-----Urspr?ngliche Nachricht-----
Von: hadley wickham [mailto:h.wickham at gmail.com]
Gesendet: Freitag, 15. Januar 2010 19:35
An: Janko Thyson
Cc: r-help at r-project.org
Betreff: Re: [R] Can an object reference itself?
On Fri, Jan 15, 2010 at 5:30 PM, Janko Thyson
<janko.thyson at ku-eichstaett.de> wrote:
Dear List,
I am not really familiar with any other language than R, but I?ve
in other languages there is something called ?self referencing?.
Here?s what I?m trying to get an answer for:
Suppose there is a function that takes as its input a value of a slot
S4 object. The function itself is stored in another slot of the SAME
object. Is it then possible to have the function automatically
the name of the object in which slot it is placed via some sort of
referencing? of the S4 object (to avoid having to explicitly state
required function argument for different S4 object instances with
names)?
I hope the following code snippets will give you an idea what I?m
do:
obj.for.slot <- data.frame(a=1); obj.for.slot <- data.frame(a=100)
save(obj.for.slot, file="C:/obj.1.for.slot.Rdata");
file="C:/obj.2.for.slot.Rdata")
slotfun <- function(obj.name)
{
? ? ? ?file.fqn.char <- paste("file.fqn <- ", obj.name, "@file.fqn",
sep="")
? ? ? ?eval(parse(text=file.fqn.char))
? ? ? ?load(file=file.fqn)
? ? ? ?return(obj.for.slot)
}
setClass(
? ? ? ?Class="Testclass",
? ? ? ?representation=representation(
? ? ? ? ? ? ? ?file.fqn="character",
? ? ? ? ? ? ? ?data="function"
? ? ? ?),
? ? ? ?prototype=prototype(
? ? ? ? ? ? ? ?file.fqn="blabla",
? ? ? ? ? ? ? ?data=slotfun
? ? ? ?)
)
test ? ? ? ? ? ?<- new("Testclass")
test.mod ? ? ? ?<- new("Testclass")
test at file.fqn ? ? ? ? ? <- "C:/obj.1.for.slot.Rdata"
test.mod at file.fqn ? ? ? <- "C:/obj.2.for.slot.Rdata"
test at data(obj.name="test")
test.mod at data(obj.name="test.mod")
An object does not have a unique name. What would happen in the
following situations?
t3 <- test.mod
tests <- list(
test,
test.mod
)
Hadley
--
http://had.co.nz/