Difference between as.data.frame(x) and data.frame(x)
dataframe, r
Solution
As mentioned by Jaap, `data.frame()` calls `as.data.frame()` but there's a reason for it:
`as.data.frame()` is a method to coerce other objects to class `data.frame`. If you're writing your own package, you would store your method to convert an object of `your_class` under `as.data.frame.your_class()`. Here are just a few examples.
methods(as.data.frame)
[1] as.data.frame.AsIs as.data.frame.Date
[3] as.data.frame.POSIXct as.data.frame.POSIXlt
[5] as.data.frame.aovproj* as.data.frame.array
[7] as.data.frame.character as.data.frame.complex
[9] as.data.frame.data.frame as.data.frame.default
[11] as.data.frame.difftime as.data.frame.factor
[13] as.data.frame.ftable* as.data.frame.integer
[15] as.data.frame.list as.data.frame.logLik*
[17] as.data.frame.logical as.data.frame.matrix
[19] as.data.frame.model.matrix as.data.frame.numeric
[21] as.data.frame.numeric_version as.data.frame.ordered
[23] as.data.frame.raw as.data.frame.table
[25] as.data.frame.ts as.data.frame.vector
Non-visible functions are asterisked
Problem
What is the difference between `as.data.frame(x)` and `data.frame(x)` functions in R? In this following example, the result is the same at the exception of the columns names. ``` x <- matrix(data=rep(1,9),nrow=3,ncol=3) > x [,1] [,2] [,3] [1,] 1 1 1 [2,] 1 1 1 [3,] 1 1 1 > data.frame(x) X1 X2 X3 1 1 1 1 2 1 1 1 3 1 1 1 > as.data.frame(x) V1 V2 V3 1 1 1 1 2 1 1 1 3 1 1 1 ```