On 11/17/2011 09:46 PM, cgenolin wrote:
Hi the list,
I define a class 'C' that inherit from two classes 'A' and 'B'. 'A' and 'B'
have no slot with similar names.
----------------
setClass(
Class="C",
contains=c("A","B")
)
To define the get operator '[' for class "C", I simply use the get of "A" or
"B" (the constante 'SLOT_OF_A' is a character holding the names of all the
slot of A) :
----------------
setMethod("[","C",
function(x,i,j,drop){
if(i%in%SLOT_OF_A){
x<- as(x,'A')
}else{
x<- as(x,'B')
}
return(x[i,j])
}
----------------
Is it possible to do something similar for the set operator '[<-' ?
Hi Christophe,
can you provide a working example? The above seems highly unusual;
normally one expects class(x[i, j]) = class(x). Best guess at what
you're wrote above is
setMethod("[", c("C", "character", "numeric"),
function(x, i, j, ..., drop=TRUE) # conform to getGeneric("[")
{
if (!i %in% slotNames(x))
stop("cannot subset with '", i, "'")
slot(x, i) = slot(x, i)[j]
x
})
which still seems quite unusual.
Hope that helps,
Martin
Thanks
Christophe
--
View this message in context:
http://r.789695.n4.nabble.com/S4-defining-using-inheritance-from-2-classes-tp4082217p4082217.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
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.
--
Computational Biology
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109
Location: M1-B861
Telephone: 206 667-2793
______________________________________________
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.