Learn R Programming

mefa (version 3.1-0)

melt: Melt (Convert) an Object of Class 'mefa' Into 'stcs'

Description

The function converts a wide formatted 'mefa' object into a long formatted 'stcs' object. The resulting segment column can take various formats.

Usage

melt(x, ...)
## S3 method for class 'mefa':
melt(x, segm.var = NULL, by.samp = TRUE,
raw.out = FALSE, drop.zero = FALSE, \dots)

Arguments

x
an object of class 'mefa'.
segm.var
NULL (default) or column indices of samples (if by.samp = TRUE) or taxa tables (if by.samp = FALSE). If it refers to more than one column, their interaction is taken. If NULL, the resulting segment colum
by.samp
logical, if TRUE (default) segm.var is taken from the samples table (x$samp), if FALSE segm.var is taken from the taxa table (x$taxa).
raw.out
logical, whether the result should contain all the zeros that is in the crosstabulated (wide) matrix (TRUE) or not (FALSE, default). Removing the zeros is straightforward for sparse matrices. But empty samples can be ratained if
drop.zero
logical, whether samples with zero total count should be leaved out (TRUE) or not (FALSE, default).
...
other arguments passed to the function stcs.

Value

  • An object of class 'stsc' if raw = FALSE, pure 'data.frame' othervise (because the zero count flag cannot be applied).

encoding

UTF-8

Details

If a 'mefa' objet has original segments and segm.var = NULL, the function returns original segments. In this case, the raw.out = TRUE cannot be applied (because segments have different zero samples, so the option is meaningless). If the 'mefa' object contains only a data matrix without dimnames, rows and columns are numbered before melting.

Besides the goal to convert from wide format to long format, this 'mefa' specific implementation is also useful, if a segment is not coded along with the long formatted database, but can be found in a linked table of samples or species. In this way, a 'mefa' object with new segments can be defined easily.

If melting is done with a vector that is not part of the tables inside the 'mefa' object, it must have a class attribute to be recognised, use e.g. the as.factor function (see 'Examples').

References

S'olymos{Solymos} P. (2008) mefa: an R package for handling and reporting count data. Community Ecology 9, 125--127.

S'olymos{Solymos} P. (2009) Processing ecological data in R with the mefa package. Journal of Statistical Software 29(8), 1--28. http://www.jstatsoft.org/v29/i08/

http://mefa.r-forge.r-project.org/

See Also

The generic function melt can also be found in the reshape package of Hadley Wickham, along with methods for data frames, arrays and lists (melt.default, melt.data.frame, melt.array).

Similar function in the Hmisc package by Frank Harrel is the reShape.

Similar function in the simba package by Gerald Jurasinski is the liste.

Examples

Run this code
data(dol.count, dol.samp, dol.taxa)
x <- mefa(stcs(dol.count), dol.samp, dol.taxa)
## Long format with original segments
melt(x)
## Long format with undefined segment
melt(as.mefa(x, segment = FALSE))
## These two are identical
melt(x, "microhab")
melt(x, x$samp$microhab) ## this is a factor
## Using a simple vector as factor
melt(x, as.factor(rbinom(dim(x)[1], 1, 0.5)))
## Interaction
melt(x, c("method", "microhab"))
## From taxa table
melt(x, "familia", by.samp = FALSE)
## Example for non-integer data
y <- x$xtab
y[y > 0] <-  y[y > 0] + 0.123
z <- mefa(y)
melt(z)

Run the code above in your browser using DataLab