Revision e168b07923b144993e99ea7b65180aed9fe3efa8 authored by Matthias Templ on 11 December 2009, 00:00:00 UTC, committed by Gabor Csardi on 11 December 2009, 00:00:00 UTC
1 parent 2d2a8cf
clr.R
clr <- function(x){
#if(dim(x)[2] < 2) stop("data must be of dimension greater equal 2")
if(dim(x)[2] == 1){
res <- list(x.clr=x, gm=rep(1,dim(x)[1]))
} else{
geometricmean <- function (x) {
if (any(na.omit(x == 0)))
0
else exp(mean(log(unclass(x)[is.finite(x) & x > 0])))
}
gm <- apply(x, 1, geometricmean)
x.clr <- log(x/gm)
res <- list(x.clr=x.clr,
gm=gm
)
}
class(res) <- "clr"
invisible(res)
}
Computing file changes ...