Сохранить имена строк в пакете Vegan - PullRequest
0 голосов
/ 11 апреля 2020

Я использую vegdist() из пакета vegan для вычисления индекса сходства Мориситы. Мои данные имеют названия сайтов, хранящиеся в первом столбце.

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 не принимает данные без нумерации c, я должен отбросить названия сайтов, указав 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().

1 Ответ

0 голосов
/ 11 апреля 2020

Это то, для чего был создан атрибут base 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
...