[R-sig-eco] How to transform a cross-tabulated matrix (as provided by mefa4::Xtab) for further multivariate analyses

Ivailo ubuntero.9161 at gmail.com
Tue Jun 12 16:08:23 CEST 2012


Dear Listmembers,

I have a large data-set that I try to manage (gracefully) according to
the mefa framework, but have noticed that cross-tabulated matrices
obtained using mefa4::Xtab can be directly submitted to some of the
multivariate functions in vegan but not to others.

Here is an example:

# example data
#
x <- data.frame(
  sample = paste("Sample", c(1,1,2,2,3,4), sep="."),
  species = c(paste("Species", c(1,1,1,2,3), sep="."),  "zero.pseudo"),
  count = c(1,2,10,3,4,0))

# create a cross-tabulated matrix; drop empty columns and rows to be
able to dca()
#
x1 <- Xtab(count ~ sample + species, x, cdrop=T, rdrop=T)

# now perform some analyses
#
dca <- decorana(x1)
# works OK

vegemite(x1, dca, "Hill", zero="-")
##Error in colSums(x[site.ind, ]) :
##  'x' must be an array of at least two dimensions

# Trying to make 'x1' a data-frame does not work either
#
as.data.frame(x1)
##Error in as.data.frame.default(x1) :
## cannot coerce class 'structure("dgCMatrix", package = "Matrix")'
into a data.frame

What would be the correct/recommended way of transforming such
matrices for use in subsequent multivariate analyses?

Any hints would be much appreciated.

Cheers,
Ivailo
-- 
UBUNTU: a person is a person through other persons.



More information about the R-sig-ecology mailing list