| 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