R: Convert a Data Frame to a Numeric Matrix

data.matrix {base} | R Documentation

## Convert a Data Frame to a Numeric Matrix

### Description

Return the matrix obtained by converting all the variables in a data frame to numeric mode and then binding them together as the columns of a matrix. Factors and ordered factors are replaced by their internal codes.

### Usage

    data.matrix(frame, rownames.force = NA)

### Arguments

`frame` | a data frame whose components are logical vectors, factors or numeric or character vectors.
`rownames.force` | logical indicating if the resulting matrix should have character (rather than `NULL`) `rownames`. The default, `NA`, uses `NULL` rownames if the data frame has ‘automatic’ row.names or for a zero-row data frame.

### Details

Logical and factor columns are converted to integers. Character columns are first converted to factors and then to integers. Any other column which is not numeric (according to `is.numeric`) is converted by `as.numeric` or, for S4 objects, `as(, "numeric")`. If all columns are integer (after conversion) the result is an integer matrix, otherwise a numeric (double) matrix.

### Value

If `frame` inherits from class `"data.frame"`, an integer or numeric matrix of the same dimensions as `frame`, with dimnames taken from the `row.names` (or `NULL`, depending on `rownames.force`) and `names`.

Otherwise, the result of `as.matrix`.

### Note

The default behaviour for data frames differs from R < 2.5.0 which always gave the result character rownames.

### References

Chambers, J. M. (1992) Data for models. Chapter 3 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.

### See Also

`as.matrix`, `data.frame`, `matrix`.

### Examples

    DF <- data.frame(a = 1:3, b = letters[10:12],
                     c = seq(as.Date("2004-01-01"), by = "week", len = 3),
                     stringsAsFactors = TRUE)
    data.matrix(DF[1:2])
    data.matrix(DF)

[Package base version 4.0.5 Index]