r语言 - 从data.frame中创建三列的不相似矩阵



这个data.frame包含comm1comm2两个群落的不相似y。我想把它转换成dist类型的不相似矩阵。

library(tidyverse)
library(RcppAlgos)
k<-10 
comm_code<-seq(1,k,by=1)
data<-comboGrid(comm_code,comm_code, repetition = F)                      
data<-data.frame(data)
data<- data %>% rename(comm1=Var1,comm2=Var2)
rm(comm_code,k)
data$y<-rnorm(nrow(data),10,2)

我该怎么做?

感谢

你可以自己创建:

structure(data$y, Size = 10, Labels = 1:10, method = "user", class = "dist")
1         2         3         4         5         6         7         8         9
2  12.253872                                                                                
3   9.609795  9.053038                                                                      
4  11.218275  8.893657 11.363967                                                            
5   8.933017 10.775817 10.900534  6.272734                                                  
6   8.862755 11.961004 14.079231 12.244758 10.079188                                        
7   8.002884 12.009199 10.015648 14.295683 12.754016  7.623887                              
8  12.464341  8.174952 11.684419 11.243689 13.950215 13.118307 10.433698                    
9  10.230285  9.020911  9.105817 11.061137  9.250890  6.634516  8.297935  9.577125          
10  8.291082  8.067096 11.114652  8.922511 11.419875  8.497445 10.100889  9.789253  7.591539

或使用igraph库:

library(igraph)
d <- graph.data.frame(data, directed = FALSE)
dist(get.adjacency(d, attr = "y", sparse = T), diag = T)

相关内容

最新更新