## Statement of need

Matrices are important mathematical objects, and they often describe networks of flows among nodes. The power of matrices lies in their ability to organize network-wide calculations, thereby simplifying the work of analysts who study entire systems.

But wouldn’t it be nice if there were an easy way to create `R`

data frames whose entries were not numbers but entire matrices? If that were possible, matrix algebra could be performed on columns of similar matrices.

That’s the reason for `matsindf`

. It provides functions to convert a suitably-formatted tidy data frame into a data frame containing a column of matrices.

Furthermore, `matsbyname`

is a sister package that

- provides matrix algebra functions that respect names of matrix rows and columns (
`dimnames`

in`R`

) to free the analyst from the task of aligning rows and columns of operands (matrices) passed to matrix algebra functions and - allows matrix algebra to be conducted within data frames using dplyr, tidyr, and other tidyverse functions.

When used together, `matsindf`

and `matsbyname`

allow analysts to wield simultaneously the power of both matrix mathematics and tidyverse functional programming.

## Installation

You can install `matsindf`

from CRAN with:

`install.packages("matsindf")`

You can install a recent development version of `matsindf`

from github with:

```
# install devtools if not already installed
# install.packages("devtools")
devtools::install_github("MatthewHeun/matsindf")
# To build vignettes locally, use
devtools::install_github("MatthewHeun/matsindf", build_vignettes = TRUE)
```

## History

The functions in this package were used in Heun et al. (2018).

## More Information

Find more information, including vignettes and function documentation, at https://MatthewHeun.github.io/matsindf/.

## References

*Applied Energy*226 (September): 1134–62. https://doi.org/10.1016/j.apenergy.2018.05.109.