swh:1:snp:a4c99a50dc49f82b591f268001b320f8c3ca0041
Tip revision: dc000f2a5f006d137f66716b086025d618bf8306 authored by John M Chambers on 14 July 2008, 00:00:00 UTC
version 1.0-5
version 1.0-5
Tip revision: dc000f2
trackNumeric.R
setClass("trackNumeric",
contains = c("numeric", "track"))
setValidity("trackNumeric", function(object) {
slotLengths <- c(length(object@.Data), length(object@x),
length(object@y))
if(length(unique(slotLengths)) == 1)
TRUE
else
paste("Differing lengths for data, x, y:",
paste(slotLengths, collapse = ", "))
})
setMethod("show", "trackNumeric",
function(object) {
message("Object of class: \"", class(object), "\"")
show(cbind(object@.Data, x = object@x, y = object@y))
})
setMethod("plot", c("trackNumeric", "missing"), #version 2
function(x, y, points = c(".", "o", "*"), ...) {
which = as.integer(cut(x@.Data, length(points)))
callNextMethod(x, pch = points[which], ...)
})
setMethod("[",
signature("trackNumeric", "numeric"),
function (x, i, j, ..., drop = TRUE)
{
if(all(i>0)) {
## must be monotone so it keeps the "track" concept
diffi <- diff(i)
if(all(diffi>0) || all(diffi<0)) {} #OK
else
stop("Only subsets that extract in a single direction produce a valid track object")
}
x@.Data <- x@.Data[i]
x@x <- x@x[i]
x@y <- x@y[i]
x
}
)