
Gracias por responder Daniel, Emilio!!!!!
 
He probado con la funcion invisible, pero no me resulta. Mi lista resultante de mi funcion sale asi:
 
###################################

$sites
[1] 1 2 3 4
$mean
[1] 60.26818 64.40346 65.99976 66.25882
$sd
[1] 7.0176634 0.9166756 1.0994990 0.0000000
$perm
          [,1]     [,2]     [,3]     [,4]
 [1,] 48.48485 63.24111 64.83131 66.25882
 [2,] 48.48485 67.24638 67.25641 66.25882
 [3,] 65.45455 63.24111 64.83131 66.25882
 [4,] 64.50000 64.70899 64.83131 66.25882
 [5,] 65.45455 67.24638 67.25641 66.25882
 [6,] 65.45455 64.66403 66.89076 66.25882
 [7,] 48.48485 67.24638 66.89076 66.25882
 [8,] 48.48485 64.70899 67.25641 66.25882
 [9,] 48.48485 63.24111 64.83131 66.25882
[10,] 64.50000 63.01994 64.12955 66.25882
attr(,"class")
[1] "taxon.accu"

############# y su estructura es la siguiente

List of 4
 $ sites: int [1:4] 1 2 3 4
 $ mean : num [1:4] 63.6 64.8 65.7 66.3
 $ sd   : num [1:4] 7.07 1.31 1.27 0
 $ perm : num [1:10, 1:4] 48.5 65.5 48.5 48.5 65.5 ...
 - attr(*, "class")= chr "taxon.accu"

###### a diferencia de la funcion "specaccum" cuyo resultado te da 

Species Accumulation Curve
Accumulation method: exact
Call: specaccum(comm = data.3) 
                                  
Sites    1.0000000 2.0000000 3.0 4
Richness 3.0000000 4.0000000 4.5 5
sd       0.7071068 0.5773503 0.5 0
Warning message:
In cor(x > 0) : the standard deviation is zero

####### y su estructura es 

List of 6
 $ call    : language specaccum(comm = data.3)
 $ method  : chr "exact"
 $ sites   : int [1:4] 1 2 3 4
 $ richness: num [1:4] 3 4 4.5 5
 $ sd      : num [1:4] 0.707 0.577 0.5 0
 $ perm    : NULL
 - attr(*, "class")= chr "specaccum"
Warning message:
In cor(x > 0) : the standard deviation is zero

###### quiero que el resultado de mi funcion me de una lista similar a la de specaccum con sites richness, sd acomodados asi como se oberva arriba (uno debajo del otro sin estar separados por $ y con sus [1] como figura en el mio y tambien que no aparesca $perm en el resultado ######## 

#### El cuerpo de la funcion "specaccum" es la que sigue, pero no he encontrado algun comando que permite hacer estos acomodos, casi al final introduce la funcion "list" pero sin ningun cambio mas, observen (lo he sombreado con negrita) ########

{
    x <- comm
    x <- as.matrix(x)
    x <- x[, colSums(x) > 0, drop = FALSE]
    n <- nrow(x)
    p <- ncol(x)
    if (p == 1) {
        x <- t(x)
        n <- nrow(x)
        p <- ncol(x)
    }
    accumulator <- function(x, ind) {
        rowSums(apply(x[ind, ], 2, cumsum) > 0)
    }
    METHODS <- c("collector", "random", "exact", "rarefaction", 
        "coleman")
    method <- match.arg(method, METHODS)
    specaccum <- sdaccum <- sites <- perm <- NULL
    if (n == 1 && method != "rarefaction") 
        message("No actual accumulation since only 1 site provided")
    switch(method, collector = {
        sites <- 1:n
        specaccum <- accumulator(x, sites)
    }, random = {
        perm <- array(dim = c(n, permutations))
        for (i in 1:permutations) {
            perm[, i] <- accumulator(x, sample(n))
        }
        sites <- 1:n
        specaccum <- apply(perm, 1, mean)
        sdaccum <- apply(perm, 1, sd)
    }, exact = {
        freq <- colSums(x > 0)
        freq <- freq[freq > 0]
        f <- length(freq)
        ldiv <- lchoose(n, 1:n)
        result <- array(dim = c(n, f))
        for (i in 1:n) {
            result[i, ] <- ifelse(n - freq < i, 0, exp(lchoose(n - 
                freq, i) - ldiv[i]))
        }
        sites <- 1:n
        specaccum <- rowSums(1 - result)
        if (conditioned) {
            V <- result * (1 - result)
            tmp1 <- cor(x > 0)
            ind <- lower.tri(tmp1)
            tmp1 <- tmp1[ind]
            tmp1[is.na(tmp1)] <- 0
            cv <- numeric(n)
            for (i in 1:n) {
                tmp2 <- outer(sqrt(V[i, ]), sqrt(V[i, ]))[ind]
                cv[i] <- 2 * sum(tmp1 * tmp2)
            }
            V <- rowSums(V)
            sdaccum <- sqrt(V + cv)
        } else {
            Stot <- specpool(x)[, gamma]
            sdaccum1 <- rowSums((1 - result)^2)
            sdaccum2 <- specaccum^2/Stot
            sdaccum <- sqrt(sdaccum1 - sdaccum2)
        }
    }, rarefaction = {
        freq <- colSums(x)
        freq <- freq[freq > 0]
        tot <- sum(freq)
        ind <- round(seq(tot/n, tot, length = n))
        result <- matrix(NA, nrow = 2, ncol = n)
        for (i in 1:n) {
            result[, i] <- rarefy(t(freq), ind[i], se = TRUE)
        }
        specaccum <- result[1, ]
        sdaccum <- result[2, ]
        sites <- ind/tot * n
    }, coleman = {
        freq <- colSums(x > 0)
        result <- array(dim = c(n, p))
        for (i in 1:n) {
            result[i, ] <- (1 - i/n)^freq
        }
        result <- 1 - result
        sites <- 1:n
        specaccum <- apply(result, 1, sum)
        sdaccum <- sqrt(apply(result * (1 - result), 1, sum))
    })
    out <- list(call = match.call(), method = method, sites = sites,
        richness = specaccum, sd = sdaccum, perm = perm)
    if (method == "rarefaction") 
        out$individuals <- ind
    class(out) <- "specaccum"
    out
}

########## Agradezco de antemano su ayuda #####

Gabriel Antonio Trujillo Paucar
Estudiante de Biologia
     997603768




> Date: Wed, 5 Dec 2012 15:56:29 -0300
[[elided Hotmail spam]]
> From: daniel319@gmail.com
> To: gabriel_enter@hotmail.com
> 
> ¿Te has fijado si hay una función para el print de specaccum en el paquete?
> 
> Daniel Merino
> 
> 
> El día 5 de diciembre de 2012 14:31, Gabriel Trujillo Paucar
> <gabriel_enter@hotmail.com> escribió:
> >
[[elided Hotmail spam]]
> >
> > Estoy creando una funcion que al final me bote una lista de 4 elementos, pero que solo muestre 3 de ellos parecido a la siguiente funcion ya creada en R
> >
> > ###########################################
> >
> >>library(vegan)
> >>data(BCI)
> >>specaccum(BCI,method="random")
> >
> > Species Accumulation Curve
> > Accumulation method: exact
> > Call: specaccum(comm = BCI)
> >
> > Sites 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000
> > Richness 90.780000 121.609796 139.045867 150.711568 159.236344 165.8306
> > sd 6.934811 7.193362 7.001993 6.635769 6.248117 5.894738
> >
> > Sites 7.00000 8.000000 9.000000 10.000000 11.000000 12.000000
> > Richness 171.14214 175.553185 179.305613 182.560444 185.429166 187.9914
> > sd 5.59124 5.337029 5.125867 4.950143 4.802556 4.676742
> >
> > Sites 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000
> > Richness 190.305605 192.415490 194.354543 196.148792 197.818788 199.380
> > sd 4.567412 4.470298 4.382021 4.299949 4.222057 4.146805
> >
> > Sites 19.000000 20.000000 21.000000 22.000000 23.000000 24.000000
> > Richness 200.848707 202.232871 203.542501 204.785122 205.967066 207.093
> > sd 4.073037 3.999894 3.926745 3.853133 3.778725 3.703284
> >
> > Sites 25.000000 26.000000 27.000000 28.000000 29.000000 30.000000
> > Richness 208.169590 209.198683 210.184380 211.129646 212.037082 212.908
> > sd 3.626634 3.548645 3.469209 3.388235 3.305631 3.221301
> >
> > Sites 31.000000 32.000000 33.000000 34.000000 35.000000 36.00000
> > Richness 213.747382 214.554104 215.330782 216.078894 216.799782 217.494
> > sd 3.135138 3.047015 2.956781 2.864256 2.769223 2.67142
> >
> > Sites 37.00000 38.000000 39.000000 40.000000 41.000000 42.000000
> > Richness 218.16469 218.810871 219.434176 220.035497 220.615665 221.1754
> > sd 2.57053 2.466167 2.357857 2.245008 2.126874 2.002491
> >
> > Sites 43.000000 44.000000 45.000000 46.000000 47.000000 48.0000000
> > Richness 221.715608 222.236800 222.739685 223.224876 223.692959 224.144
> > sd 1.870578 1.729378 1.576348 1.407647 1.216392 0.9916025
> >
> > Sites 49.0000000 50
> > Richness 224.5800000 225
> > sd 0.6954135 0
> > Warning message:
> > In cor(x > 0) : the standard deviation is zero
> >
> > #####################################################
> > ###### Como se oberva el resultado bota valores de sites, richness y sd "alineados" uno con el ######otro a cual ####corresponde. Si ponen la estructura de este objeto tendran
> > #####################################################
> >
> >>str(specaccum(BCI,method="random"))
> >
> > List of 6
> > $ call : language specaccum(comm = BCI, method = "random")
> > $ method : chr "random"
> > $ sites : int [1:50] 1 2 3 4 5 6 7 8 9 10 ...
> > $ richness: num [1:50] 91 121 139 151 159 ...
> > $ sd : num [1:50] 6.73 7.02 6.65 6.23 5.14 ...
> > $ perm : num [1:50, 1:100] 94 129 141 156 161 168 173 177 178 181 ...
> > - attr(*, "class")= chr "specaccum"
> >
> > ###################################################
> > ###### Ese objeto resultante es una lista de 6 elementos, sin embargo cuando lo colocas como resultado no muestra $perm como se observa cuando corres la funcion "specaccum", solo muestra call, method, sites, richnness, sd. Asi es como me gustaria poder hacer para mi funcion, y ademas para que los valores de sites, richnness y sd salgan alineados uno con el otro. Me gustaria que tipo de saber que tipo de comando podria usar para que cuando corra la funcion creada no muestre "$perm" y los otro valores salgan alineados. He revisado el cuerpo de la funcion specaccum y la he puesto parecida a la mia y no he visto diferencias, tampoco he encontrado algun comando que le ordene a funcion ocultar el $perm
> >
> > ###################################################
> >
> > Agradezco de antemano su ayuda
> >
> > Gabriel Antonio Trujillo Paucar
> > Estudiante de Biologia
> > 997603768
> >
> >
> > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> 
> 
> 
> -- 
> Daniel
 		 	   		  
	[[alternative HTML version deleted]]

