Coerces an object to a `*Matrix`

object.

```
as_long(from, ...)
as_count(from)
as_composition(from)
as_incidence(from)
as_occurrence(from)
as_features(from)
as_stratigraphy(from)
# S4 method for ANY
as_count(from)
# S4 method for ANY
as_composition(from)
# S4 method for ANY
as_incidence(from)
# S4 method for ANY
as_occurrence(from)
# S4 method for ANY
as_stratigraphy(from)
# S4 method for matrix
as_long(from, factor = FALSE, reverse = FALSE)
# S4 method for AbundanceMatrix
as_long(from, factor = FALSE, reverse = FALSE)
# S4 method for AbundanceMatrix
as_features(from)
```

- from
An object to be coerced.

- ...
Currently not used.

- factor
A

`logical`

scalar: should character string be coerced to`factor`

? Default to`FALSE`

, if`TRUE`

the original ordering is preserved.- reverse
A

`logical`

scalar: should the order of factor levels be reversed? Only used if`factor`

is`TRUE`

. Useful for plotting.

A coerced object.

The following methods coerce an object to a `*Matrix`

object:

Method | Target | Details |

`as_count()` | CountMatrix | absolute frequency data |

`as_composition()` | CompositionMatrix | relative frequency data |

`as_incidence()` | IncidenceMatrix | presence/absence data |

`as_occurrence()` | OccurrenceMatrix | co-occurrence |

`as_stratigraphy()` | StratigraphicMatrix | stratigraphic relationships |

*Note that as_count() rounds numeric values to zero decimal places and
then coerces to integer as by as.integer().*

`as_stratigraphy()`

converts a set of stratigraphic relationships (edges)
to a stratigraphic (adjacency) matrix. `from`

can be a `matrix`

, `list`

,
or `data.frame`

: the first column/component is assumed to contain the
bottom units and the second the top units (adjacency).

Method | Target | Details |

`as_long()` | `data.frame` | long S3 data frame |

`as_features()` | `data.frame` | wide S3 data frame |

`as_features()`

converts a `*Matrix`

object to a collection of features:
a `data.frame`

with all informations as extra columns (result may differ
according to the class of `from`

).

The `CountMatrix`

, `CompositionMatrix`

and `IncidenceMatrix`

classes have
special slots:

`samples`

for replicated measurements/observation,`groups`

to group data by site/area,`dates`

to specify the date point estimate of an assemblage,`tqp`

and`taq`

to specify the chronology of an assemblage.

When coercing a `data.frame`

to a `*Matrix`

object, an attempt is made to
automatically assign values to these slots by mapping column names (case
insensitive, plural insensitive). This behavior can be disabled by setting
`options(arkhe.autodetect = FALSE)`

or overrided by explicitly specifying
the columns to be used in `as_*()`

.

The way chronological information is handled is somewhat opinionated.
Sub-annual precision is overkill/meaningless in most situations: dates are
assumed to be expressed in years CE and are stored as integers (values are
coerced with `as.integer()`

and hence truncated towards zero).

N. Frerebeau

```
## Create a count matrix
A0 <- matrix(data = sample(0:10, 100, TRUE), nrow = 20, ncol = 5)
## Coerce to absolute frequencies
A1 <- as_count(A0)
## Coerce to relative frequencies
B0 <- as_composition(A1)
## Row sums are internally stored before coercing to relative frequencies
## (use get_totals() to retrieve these values)
## This allows to restore the source data
A2 <- as_count(B0)
all(A1 == A2)
#> [1] TRUE
## Coerce to presence/absence
C0 <- as_incidence(A1)
## Coerce to a co-occurrence matrix
D0 <- as_occurrence(A1)
## Coerce to an S3 matrix or data.frame
X <- as.matrix(A1)
all(A0 == X)
#> [1] TRUE
Y <- data.frame(A1)
head(Y)
#> col1 col2 col3 col4 col5
#> row1 10 1 1 4 8
#> row2 9 3 5 3 8
#> row3 3 9 10 0 2
#> row4 7 7 0 9 9
#> row5 6 6 2 8 2
#> row6 6 3 1 3 5
```