XIntegerViews-class         package:IRanges         R Documentation

The XIntegerViews class

Description:

     The XIntegerViews class is the basic container for storing a set
     of views (start/end locations) on the same XInteger object.

Details:

     An XIntegerViews object contains a set of views (start/end
     locations) on the same XInteger object called "the subject integer
     vector" or simply "the subject". Each view is defined by its start
     and end locations: both are integers such that start <= end. An
     XIntegerViews object is in fact a particular case of a Views
     object (the XIntegerViews class contains the Views class) so it
     can be manipulated in a similar manner: see '?Views' for more
     information. Note that two views can overlap and that a view can
     be "out of limits" i.e. it can start before the first element of
     the subject or/and end after its last element.

Other methods:

     In the code snippets below, 'x', 'object', 'e1' and 'e2' are
     XIntegerViews objects, and 'i' can be a numeric or logical vector.


      'x[[i]]': Extract a view as an XInteger object. 'i' must be a
          single numeric value (a numeric vector of length 1). Can't be
          used for extracting a view that is "out of limits" (raise an
          error). The returned object has the same XInteger subtype as
          'subject(x)'.

      'e1 == e2': A vector of logicals indicating the result of the
          view by view comparison. The views in the shorter of the two
          XIntegerViews object being compared are recycled as
          necessary.

      'e1 != e2': Equivalent to '!(e1 == e2)'.


Author(s):

     P. Aboyoun

See Also:

     Views-class, XInteger-class, Views-utils

Examples:

       ## One standard way to create an XIntegerViews object is to use
       ## the Views() constructor:
       subject <- as(c(45, 67, 84, 67, 45, 78), "XInteger")
       v4 <- Views(subject, start=3:0, end=5:8)
       v4
       subject(v4)
       length(v4)
       start(v4)
       end(v4)
       width(v4)

       ## Attach a comment to views #3 and #4:
       names(v4)[3:4] <- "out of limits"
       names(v4)

       ## A more programatical way to "tag" the "out of limits" views:
       names(v4)[start(v4) < 1 | length(subject(v4)) < end(v4)] <- "out of limits"
       ## or just:
       names(v4)[length(subject(v4)) < width(v4)] <- "out of limits"

       ## Extract a view as an XInteger object:
       v4[[2]]

       ## It is an error to try to extract an "out of limits" view:
       #v4[[3]] # Error!

       ## Here the first view doesn't even overlap with the subject:
       subject <- as(c(97, 97, 97, 45, 45, 98), "XInteger")
       Views(subject, start=-3:4, end=-3:4 + c(3:6, 6:3))

