我有一些代码,该代码使用for循环从列表中半随机选择10列(每列都是物种标识),然后使用关联的丰度值从列表中创建物种多样性和丰富度值。它将对每一行重复此操作100次(行是位置数据,即数据所来自的网格参考),然后在运行下一行模拟时创建并保存平均值并覆盖所有数据。
我想做的就是保存它为每行数据创建的所有100个物种多样性值,然后再对其进行覆盖并将其插入如下所示的表中:
Grid Reference | Species Diversity | Species Richness
1 | rep1 value | rep 1 value
1 | rep2 value | rep 2 value
在将这张表与我将要研究的其他期间中得出的表格合并后,我可以在年份和网格参考之间进行比较
我尝试命令它根据第一组括号内的WeightedSample和DiversitySample数据创建表格,但这最终仅列出了一次模拟的100个多样性值的列表,而没有数据所属的网格
我也试图研究其他可能的命令和方法,但是对于使用R或任何一种编程语言我还是很陌生。任何人都可以提供的任何帮助将不胜感激。我已经在下面开始添加了代码。
data1xtab<-xtabs(abundance~grid+sp_code,data=data1)
library(vegan)
# Create some empty vectors to save the mean and SE values for diversity
and species richness
Diversity10<-DiversitySE10<-RichnessSE10<-Richness10<-
vector(length=nrow(data1xtab))
# A big "for loop" that will run the simulations. Right now this takes each
row of the xtab data in turn and runs 100 simulations on it
for(x in 1:nrow(data1xtab)){
DiversitySample<-vector(length=100)
SpeciesRichnessSample<-vector(length=100)
for(y in 1:100){
WeightedSample<-
sample(colnames(data1xtab),size=10,prob=data1xtab[x,],replace=TRUE)
DiversitySample[y]<-diversity(table(WeightedSample))
SpeciesRichnessSample[y]<-specnumber(table(WeightedSample))
}
Diversity10[x]<-mean(DiversitySample)
DiversitySE10[x]<-sd(DiversitySample)/sqrt(length(DiversitySample))
Richness10[x]<-mean(SpeciesRichnessSample)
RichnessSE10[x]<-
sd(SpeciesRichnessSample)/sqrt(length(SpeciesRichnessSample))
}