diag {base} | R Documentation |
Extract or replace the diagonal of a matrix, or construct a diagonal matrix.
diag(x, nrow, ncol) diag(x) <- value
If x
is a matrix then diag(x)
returns the diagonal of
x
. The resulting vector will have names
if the
matrix x
has matching column and row names.
If x
is a vector (or a 1-d array) then diag(x)
returns a diagonal
matrix whose diagonal is x
. If x
is an integer then
diag(x)
returns an identity matrix of order x
.
The dimension of the returned matrix can be specified by
nrow
and ncol
(the default is square).
The assignment form sets the diagonal of the matrix x
to the
given value(s).
dim(diag(3)) diag(10,3,4) # guess what? all(diag(1:3) == {m <- matrix(0,3,3); diag(m) <- 1:3; m}) diag(var(M <- cbind(X=1:5, Y=rnorm(5))))#-> vector with names "X" and "Y" rownames(M) <- c(colnames(M),rep("",3)); M; diag(M) # named as well