spMatrix package:Matrix R Documentation _S_p_a_r_s_e _M_a_t_r_i_x _C_o_n_s_t_r_u_c_t_o_r _F_r_o_m _T_r_i_p_l_e_t _D_e_s_c_r_i_p_t_i_o_n: User friendly construction of a sparse matrix (inheriting from class 'TsparseMatrix') from the triplet representation. _U_s_a_g_e: spMatrix(nrow, ncol, i = integer(), j = integer(), x = numeric()) _A_r_g_u_m_e_n_t_s: nrow, ncol: integers specifying the desired number of rows and columns. i,j: integer vectors of the same length specifying the locations of the non-zero (or non-'TRUE') entries of the matrix. x: atomic vector of the same length as 'i' and 'j', specifying the values of the non-zero entries. _V_a_l_u_e: A sparse matrix in triplet form, as an R object inheriting from both 'TsparseMatrix' and 'generalMatrix'. The matrix M will have 'M[i[k], j[k]] == x[k]', for k = 1,2,..., n, where 'n = length(i)' and 'M[ i', j' ] == 0' for all other pairs (i',j'). _S_e_e _A_l_s_o: 'Matrix(*, sparse=TRUE)' for the more usual constructor of such matrices; further 'bdiag' and 'Diagonal' for (block-)diagonal matrix constructors. Consider 'TsparseMatrix' and similar class definition help files. _E_x_a_m_p_l_e_s: ## simple example A <- spMatrix(10,20, i = c(1,3:8), j = c(2,9,6:10), x = 7 * (1:7)) A # a "dgTMatrix" summary(A) str(A) # note that *internally* 0-based indices (i,j) are used L <- spMatrix(9, 30, i = rep(1:9, 3), 1:27, (1:27) %% 4 != 1) L # an "lgTMatrix" ### This is a useful utility, to be used for experiments : rSpMatrix <- function(nrow, ncol, nnz, rand.x = function(n) round(rnorm(nnz), 2)) { ## Purpose: random sparse matrix ## -------------------------------------------------------------- ## Arguments: (nrow,ncol): dimension ## nnz : number of non-zero entries ## rand.x: random number generator for 'x' slot ## -------------------------------------------------------------- ## Author: Martin Maechler, Date: 14.-16. May 2007 stopifnot((nnz <- as.integer(nnz)) >= 0, nrow >= 0, ncol >= 0, nnz <= nrow * ncol) spMatrix(nrow, ncol, i = sample(nrow, nnz, replace = TRUE), j = sample(ncol, nnz, replace = TRUE), x = rand.x(nnz)) } M1 <- rSpMatrix(100000, 20, nnz = 200) summary(M1)