保留包 vegan 中的行名称

Retain row names in package vegan

我正在使用 vegan 包中的 vegdist() 来计算 Morisita 的相似度指数。我的数据将站点名称存储在第一列中。

TCR 3   0   0   0   
MTF 0   1   2   0   
UTZ 0   1   0   1   
MTC 0   0   0   0   
TMC 0   0   0   0   
RLK 0   0   0   0

因为 vegdist 不接受非数字数据,我必须通过指定 data[-1]

来删除网站名称
vegdist(data[-1 ], method='morisita')

这很好用,但显然我没有任何站点名称:

           1          2          3          4          5
2 0.02701298                                            
3 0.30256065 0.31838705                                 
4 0.00000000 0.02279212 0.27784052                      
5 0.25158180 0.33946880 0.54253442 0.29648698           
6 0.03720930 0.03925893 0.35777998 0.03406440 0.40862423

根据我的数据以及我认为它们是哪些网站,其中一些数字似乎不正确。所以我有网站名称来确认哪个是哪个是非常重要的。 如何在使用 vegdist() 时保留我的网站名称?

请注意,在使用 diversity() 时,我能够保留站点名称,同样来自 vegan,这样:

plyr::ddply(data, ~site, function(x) {
           data.frame(simpson=diversity(x[-1], index='simpson'))
   })

但我无法弄清楚如何使它适应 vegdist()

这就是基础 R rownames 属性的用途。

rownames(data) <- data[,1]
data <- data[,-1]
data
#    V2 V3 V4 V5
#TCR  3  0  0  0
#MTF  0  1  2  0
#UTZ  0  1  0  1
#MTC  0  0  0  0
#TMC  0  0  0  0
#RLK  0  0  0  0

现在,当您使用 vegan 中的所有这些功能时,您会得到更有用的结果。

library(vegan)
vegdist(data,method='morisita')
#    TCR MTF UTZ MTC TMC
#MTF   1                
#UTZ   1   0            
#MTC NaN NaN NaN        
#TMC NaN NaN NaN NaN    
#RLK NaN NaN NaN NaN NaN