Creating a matrix from a long data.frame
There can never be too many examples for transforming data with R. So, here is another example of reshaping a data.frame
into a matrix
.
Here I have a data frame that shows incremental claim payments over time for different loss occurrence (origin) years.
The format of the data frame above is how this kind of data is usually stored in a data base. However, I would like to see the payments of the different origin years in rows of a matrix.
The first idea might be to use the reshape
function, but that would return a data.frame
. Yet, it is actually much easier with the matrix
function itself. Most of the code below is about formatting the dimension names of the matrix. Note that I use the with
function to save me a bit of typing.
An elegant alternative to matrix
provides the acast
function of the reshape2
package. It has a nice formula argument and allows me not only to specify the aggregation function, but also to add the margin totals.
Citation
For attribution, please cite this work as:Markus Gesmann (Oct 01, 2013) Creating a matrix from a long data.frame. Retrieved from https://magesblog.com/post/2013-10-01-creating-matrix-from-long-dataframe/
@misc{ 2013-creating-a-matrix-from-a-long-data.frame,
author = { Markus Gesmann },
title = { Creating a matrix from a long data.frame },
url = { https://magesblog.com/post/2013-10-01-creating-matrix-from-long-dataframe/ },
year = { 2013 }
updated = { Oct 01, 2013 }
}