Ich habe einige Ausgabe von der vegan
Funktion specaccum
. Es ist eine Liste von 8 Objekten unterschiedlicher Länge;Extrahieren Sie mehrere Objekte aus der Liste in R
> str(SPECIES)
List of 8
$ call : language specaccum(comm = PRETEND.DATA, method = "rarefaction")
$ method : chr "rarefaction"
$ sites : num [1:5] 1 2 3 4 5
$ richness : num [1:5] 20.9 34.5 42.8 47.4 50
$ sd : num [1:5] 1.51 2.02 1.87 1.35 0
$ perm : NULL
$ individuals: num [1:5] 25 50 75 100 125
$ freq : num [1:50] 1 2 3 2 4 3 3 3 4 2 ...
- attr(*, "class")= chr "specaccum"
Ich möchte drei der Listen extrahieren (‚Reichtum‘, ‚sd‘ und ‚Individuen‘) und wandeln sie in Spalten in einem Datenrahmen. Ich habe einen Workaround entwickelt.
SPECIES.rich <- data.frame(SPECIES[["richness"]])
SPECIES.sd <- data.frame(SPECIES[["sd"]])
SPECIES.individuals <- data.frame(SPECIES[["individuals"]])
SPECIES.df <- cbind(SPECIES.rich, SPECIES.sd, SPECIES.individuals)
Aber das scheint plump und langwierig. Ich frage mich, ob jemand eine bessere Lösung vorschlagen könnte? (Sollte ich etwas mit Schlaf sehen?) Danke!
Beispieldaten zum Generieren des specaccum
Ausgangs;
Set.Seed(100)
PRETEND.DATA <- matrix(sample(0:1, 250, replace = TRUE), 5, 50)
library(vegan)
SPECIES <- specaccum(PRETEND.DATA, method = "rarefaction")
Dank @akrun! Das sieht viel besser aus. Ich habe mit so etwas experimentiert, aber verpatzte die '(') und die '' ( – EcologyTom