# Subassign-methods: Methods for "[<-" - Assigning to Subsets for 'Matrix' In Matrix: Sparse and Dense Matrix Classes and Methods

 [<–methods R Documentation

## Methods for "[<-" - Assigning to Subsets for 'Matrix'

### Description

Methods for `"[<-"`, i.e., extraction or subsetting mostly of matrices, in package Matrix.

Note: Contrary to standard `matrix` assignment in base R, in `x[..] <- val` it is typically an error (see `stop`) when the type or `class` of `val` would require the class of `x` to be changed, e.g., when `x` is logical, say `"lsparseMatrix"`, and `val` is numeric. In other cases, e.g., when `x` is a `"nsparseMatrix"` and `val` is not `TRUE` or `FALSE`, a warning is signalled, and `val` is “interpreted” as `logical`, and (logical) `NA` is interpreted as `TRUE`.

### Methods

There are many many more than these:

x = "Matrix", i = "missing", j = "missing", value= "ANY"

is currently a simple fallback method implementation which ensures “readable” error messages.

x = "Matrix", i = "ANY", j = "ANY", value= "ANY"

currently gives an error

x = "denseMatrix", i = "index", j = "missing", value= "numeric"

...

x = "denseMatrix", i = "index", j = "index", value= "numeric"

...

x = "denseMatrix", i = "missing", j = "index", value= "numeric"

...

`[-methods` for subsetting `"Matrix"` objects; the `index` class; `Extract` about the standard subset assignment (and extraction).

### Examples

```
set.seed(101)
(a <- m <- Matrix(round(rnorm(7*4),2), nrow = 7))

a[] <- 2.2 # <<- replaces **every** entry
a
## as do these:
a[,] <- 3 ; a[TRUE,] <- 4

m[2, 3]  <- 3.14 # simple number
m[3, 3:4]<- 3:4  # simple numeric of length 2

## sub matrix assignment:
m[-(4:7), 3:4] <- cbind(1,2:4) #-> upper right corner of 'm'
m[3:5, 2:3] <- 0
m[6:7, 1:2] <- Diagonal(2)
m

## rows or columns only:
m[1,] <- 10
m[,2] <- 1:7
m[-(1:6), ] <- 3:0 # not the first 6 rows, i.e. only the 7th
as(m, "sparseMatrix")
```

Matrix documentation built on Nov. 11, 2022, 9:06 a.m.