sparseVector-class {Matrix} | R Documentation

## Sparse Vector Classes

### Description

Sparse Vector Classes: The virtual mother class `"sparseVector"` has the five actual daughter classes `"dsparseVector"`, `"isparseVector"`, `"lsparseVector"`, `"nsparseVector"`, and `"zsparseVector"`, where we've mainly implemented methods for the `d*`, `l*` and `n*` ones.

### Slots

`length`:
  class `"integer"` - the `length` of the sparse vector.
`i`:
  class `"integer"` - the (1-based) indices of the non-zero entries.
`x`:
  (for all but `"nsparseVector"`): the non-zero entries. This is of class `"numeric"` for class `"dsparseVector"`, `"logical"` for class `"lsparseVector"`, etc.

  Note that `"nsparseVector"`s have no `x` slot. Further, mainly for ease of method definitions, we've defined the class union (see `setClassUnion`) of all sparse vector classes which have an `x` slot, as class `"xsparseVector"`.

### Methods

length
  `signature(x = "sparseVector")`: simply extracts the `length` slot.
show
  `signature(object = "sparseVector")`: The `show` method for sparse vectors prints “structural” zeroes as `"."` using the non-exported `prSpVector` function which allows further customization such as replacing `"."` by `" "` (blank).

  Note that `options(max.print)` will influence how many entries of large sparse vectors are printed at all.

as.vector
  `signature(x = "sparseVector", mode = "character")` coerces sparse vectors to “regular”, i.e., atomic vectors. This is the same as `as(x, "vector")`.
dim<-
  `signature(x = "sparseVector", value = "integer")` coerces a sparse vector to a sparse Matrix, i.e., an object inheriting from `sparseMatrix`, of the appropriate dimension.
rep
  `signature(x = "sparseVector")` repeat `x`, with the same argument list `(x, times, length.out, each, ...)` as the default method for rep().

### Examples

    getClass("sparseVector")
    getClass("dsparseVector")
    getClass("xsparseVector")# those with an 'x' slot

    sx <- c(0,0,3, 3.2, 0,0,0,-3:1,0,0,2,0,0,5,0,0)
    (ss <- as(sx, "sparseVector"))

    ix <- as.integer(round(sx))
    (is <- as(ix, "sparseVector"))
    ## an "isparseVector" (!)

    ## rep() works too:
    rep(is, length.out= 25)

    ## Using `dim<-`  as in base R :
    r <- ss
    dim(r) <- c(4,5) # becomes a sparse Matrix:
    r

[Package Matrix version 0.999375-30 Index]