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.

`as.matrix`, `data.frame`, `matrix`.
```DF <- data.frame(a = 1:3, b = letters[10:12],