R: Convert a data.table to a matrix

as.matrix {data.table} | R Documentation

## Convert a data.table to a matrix

### Description

Converts a `data.table` into a `matrix`, optionally using one of the columns in the `data.table` as the `matrix` `rownames`.

### Usage

    ## S3 method for class 'data.table'
    as.matrix(x, rownames=NULL, rownames.value=NULL, ...)

### Arguments

`x` | a `data.table`
`rownames` | optional, a single column name or column number to use as the `rownames` in the returned `matrix`. If `TRUE` the `key` of the `data.table` will be used if it is a single column, otherwise the first column in the `data.table` will be used.
`rownames.value` | optional, a vector of values to be used as the `rownames` in the returned `matrix`. It must be the same length as `nrow(x)`.
`...` | Required to be present because the generic 'as.matrix' generic has it. Arguments here are not currently used or passed on by this method.

### Details

`as.matrix` is a generic function in base R. It dispatches to `as.matrix.data.table` if its `x` argument is a `data.table`.

The method for `data.table`s will return a character matrix if there are only atomic columns and any non-(numeric/logical/complex) column, applying `as.vector` to factors and `format` to other non-character columns. Otherwise, the usual coercion hierarchy (logical < integer < double < complex) will be used, e.g., all-logical data frames will be coerced to a logical matrix, mixed logical-integer will give an integer matrix, etc.

### Value

A new `matrix` containing the contents of `x`.

### See Also

`data.table`, `as.matrix`, `data.matrix` `array`

### Examples

    DT <- data.table(A = letters[1:10], X = 1:10, Y = 11:20)
    as.matrix(DT) # character matrix
    as.matrix(DT, rownames = "A")
    as.matrix(DT, rownames = 1)
    as.matrix(DT, rownames = TRUE)

    setkey(DT, A)
    as.matrix(DT, rownames = TRUE)

[Package data.table version 1.11.8 Index]