

diag {base}                                  R Documentation

_M_a_t_r_i_x _D_i_a_g_o_n_a_l_s

_D_e_s_c_r_i_p_t_i_o_n_:

     Extract or replace the diagonal of a matrix, or con-
     struct a diagonal matrix.

_U_s_a_g_e_:

     diag(x, nrow, ncol)
     diag(x) <- value

_V_a_l_u_e_:

     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).

_S_e_e _A_l_s_o_:

     `matrix'.

_E_x_a_m_p_l_e_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

