as.data.frame {base} | R Documentation

## Coerce to a Data Frame

### Description

Functions to check if an object is a data frame, or coerce it if possible.

### Usage

    as.data.frame(x, row.names = NULL, optional = FALSE)
    is.data.frame(x)

### Arguments

`x` | any R object.
`row.names` | `NULL` or a character vector giving the row names for the data frame. Missing values are not allowed.
`optional` | logical. If `TRUE`, setting row names and converting column names (to syntactic names) is optional.

### Details

`as.data.frame` is a generic function with many methods, and users and packages can supply further methods.

If a list is supplied, each element is converted to a column in the data frame. Similarly, each column of a matrix is converted separately. This can be overridden if the object has a class which has a method for `as.data.frame`: two examples are matrices of class `"model.matrix"` (which are included as a single column) and list objects of class `"POSIXlt"` which are coerced to class `"POSIXct"`.

As from R 1.9.0 arrays can be converted. One-dimensional arrays are treated like vectors and two-dimensional arrays like matrices. Arrays with more than two dimensions are converted to matrices by ‘flattening’ all dimensions after the first and creating suitable column labels.

Character variables are converted to factor columns unless protected by `I`.

If a data frame is supplied, all classes preceding `"data.frame"` are stripped, and the row names are changed if that argument is supplied.

If `row.names = NULL`, row names are constructed from the names or dimnames of `x`, otherwise are the integer sequence starting at one. Few of the methods check for duplicated row names.

### Value

`as.data.frame` returns a data frame, normally with all row names `""` if `optional = TRUE`.
`is.data.frame` returns `TRUE` if its argument is a data frame (that is, has `"data.frame"` amongst its classes) and `FALSE` otherwise.

### Note

In versions of R prior to 1.4.0 logical columns were converted to factors (as in S3 but not S4).

### 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

`data.frame`

[Package Contents]