SRList <- function(...) {
args <- list(...)
if (length(args)==1 && is(args[[1]], "list"))
new("SRList", .srlist=args[[1]])
else
new("SRList", .srlist=args)
}
.make_getter(".srlist")
srlist <- .srlist # export
setMethod(names, "SRList", function(x) names(.srlist(x)))
setReplaceMethod("names", c("SRList", "character"), function(x, value) {
lst <- .srlist(x)
names(lst) <- value
initialize(x, .srlist=lst)
})
setMethod(length, "SRList", function(x) length(.srlist(x)))
setMethod("[", c(x="SRList", i="ANY", j="missing"),
function(x, i, j, ..., drop=FALSE) {
initialize(x, .srlist=.srlist(x)[i])
})
setMethod("[[", signature(x="SRList", i="ANY", j="missing"),
function(x, i, j, ...) .srlist(x)[[i]])
setMethod(sapply, "SRList", function(X, FUN, ..., simplify=TRUE,
USE.NAMES=TRUE) {
sapply(.srlist(X), FUN, ..., simplify=simplify,
USE.NAMES=USE.NAMES)
})
setMethod(lapply, "SRList", function(X, FUN, ...) {
lapply(.srlist(X), FUN, ...)
})
.SRList_show_class <- function(object) {
cat("class: ", class(object), "(", length(object), ")\n", sep="")
}
setMethod(show, "SRList", .SRList_show_class)
setMethod(detail, "SRList", function(x,...) {
.SRList_show_class(x)
.srlist(x)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.