This function supports non-standard evaluation through the tidyeval framework.

cast_sparse(data, row, column, value, ...)

Arguments

data

A tbl

row

Column name to use as row names in sparse matrix, as string or symbol

column

Column name to use as column names in sparse matrix, as string or symbol

value

Column name to use as sparse matrix values (default 1) as string or symbol

...

Extra arguments to pass on to sparseMatrix()

Value

A sparse Matrix object, with one row for each unique value in the row column, one column for each unique value in the column

column, and with as many non-zero values as there are rows in data.

Details

Note that cast_sparse ignores groups in a grouped tbl_df. The arguments row, column, and value are passed by expression and support quasiquotation; you can unquote strings and symbols.

Examples


dat <- data.frame(a = c("row1", "row1", "row2", "row2", "row2"),
                  b = c("col1", "col2", "col1", "col3", "col4"),
                  val = 1:5)

cast_sparse(dat, a, b)
#> 2 x 4 sparse Matrix of class "dgCMatrix"
#>      col1 col2 col3 col4
#> row1    1    1    .    .
#> row2    1    .    1    1

cast_sparse(dat, a, b, val)
#> 2 x 4 sparse Matrix of class "dgCMatrix"
#>      col1 col2 col3 col4
#> row1    1    2    .    .
#> row2    3    .    4    5