我使用specaccum()
命令为我的样本开发物种积累曲线。
以下是一些示例数据:
site1<-c(0,8,9,7,0,0,0,8,0,7,8,0)
site2<-c(5,0,9,0,5,0,0,0,0,0,0,0)
site3<-c(5,0,9,0,0,0,0,0,0,6,0,0)
site4<-c(5,0,9,0,0,0,0,0,0,0,0,0)
site5<-c(5,0,9,0,0,6,6,0,0,0,0,0)
site6<-c(5,0,9,0,0,0,6,6,0,0,0,0)
site7<-c(5,0,9,0,0,0,0,0,7,0,0,3)
site8<-c(5,0,9,0,0,0,0,0,0,0,1,0)
site9<-c(5,0,9,0,0,0,0,0,0,0,1,0)
site10<-c(5,0,9,0,0,0,0,0,0,0,1,6)
site11<-c(5,0,9,0,0,0,5,0,0,0,0,0)
site12<-c(5,0,9,0,0,0,0,0,0,0,0,0)
site13<-c(5,1,9,0,0,0,0,0,0,0,0,0)
species_counts<-rbind(site1,site2,site3,site4,site5,site6,site7,site8,site9,site10,site11,site12,site13)
accum <- specaccum(species_counts, method="random", permutations=100)
plot(accum)
为了确保我已经充分采样,我需要确保物种积累图的曲线达到渐近线,定义为最后两点之间的斜率<0.3(站点12和13之间的ei)。
results <- with(accum, data.frame(sites, richness, sd))
产生这个:
sites richness sd
1 1 3.46 0.9991916
2 2 4.94 1.6625403
3 3 5.94 1.7513054
4 4 7.05 1.6779918
5 5 8.03 1.6542263
6 6 8.74 1.6794660
7 7 9.32 1.5497149
8 8 9.92 1.3534841
9 9 10.51 1.0492422
10 10 11.00 0.8408750
11 11 11.35 0.7017295
12 12 11.67 0.4725816
13 13 12.00 0.0000000
我觉得我到了那里。我可以生成一个具有站点与丰富度的lm并提取站点12和13之间的确切斜率(正切?)。在这里搜索一下。
答案 0 :(得分:3)
简化数据生成过程:
set.seed()
在运行随机化测试之前,specaccum
总是一个好主意(让我们知道vegan
包含在set.seed(101)
library(vegan)
accum <- specaccum(species_counts, method="random", permutations=100)
中):
richness
从返回的对象中提取sites
和d(richness)/d(sites)
组件并计算(slopes <- with(accum,diff(richness)/diff(sites)))
## [1] 1.45 1.07 0.93 0.91 0.86 0.66 0.65 0.45 0.54 0.39 0.32 0.31
(请注意,斜率向量比原点/丰富度向量短一个元素:小心如果你试图将斜坡与特定数量的地点进行匹配)
which(slopes<0.3)[1]
在这种情况下,斜率实际上从未低于0.3,因此该代码用于首次发现斜率低于0.3:
NA
返回.datamaps-subunit.MI
。