Skip to content

Turning a sparse matrix into a tibble.

Usage

coerce_to_sparse_tibble(x)

Arguments

x

sparse matrix.

Details

The only requirement from the sparse matrix is that it contains column names.

Examples

set.seed(1234)
mat <- matrix(sample(0:1, 100, TRUE, c(0.9, 0.1)), nrow = 10)
colnames(mat) <- letters[1:10]
sparse_mat <- Matrix::Matrix(mat, sparse = TRUE)
sparse_mat
#> 10 x 10 sparse Matrix of class "dgCMatrix"
#>   [[ suppressing 10 column names ‘a’, ‘b’, ‘c’ ... ]]
#>                          
#>  [1,] . . . . . . . . 1 .
#>  [2,] . . . . . . . . . 1
#>  [3,] . . . . . . . . . .
#>  [4,] . 1 . . . . . . . .
#>  [5,] . . . . . . . . . .
#>  [6,] . . . . . . . . . .
#>  [7,] . . . . . . . . . .
#>  [8,] . . 1 . . . . . . .
#>  [9,] . . . 1 . . . . . .
#> [10,] . . . . . . . . . .

res <- coerce_to_sparse_tibble(sparse_mat)
res
#> # A tibble: 10 × 10
#>        a     b     c     d     e     f     g     h     i     j
#>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1     0     0     0     0     1     1     1     1     1     0
#>  2     0     0     0     0     0     0     0     0     0     1
#>  3     0     0     0     0     0     0     0     0     0     0
#>  4     1     1     0     0     0     0     0     0     0     0
#>  5     0     0     0     0     0     0     0     0     0     0
#>  6     0     0     0     0     0     0     0     0     0     0
#>  7     0     0     0     0     0     0     0     0     0     0
#>  8     0     0     1     0     0     0     0     0     0     0
#>  9     0     0     0     1     1     1     1     1     0     0
#> 10     0     0     0     0     0     0     0     0     0     0

# All columns are sparse
vapply(res, is_sparse_vector, logical(1))
#>    a    b    c    d    e    f    g    h    i    j 
#> TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE