gpt4 book ai didi

R:邻接表到邻接矩阵

转载 作者:行者123 更新时间:2023-12-02 04:32:10 27 4
gpt4 key购买 nike

Bonjour,我想将邻接列表(3 列)转换为邻接矩阵。在这个论坛中,我找到了多个有关如何将边列表转换为邻接矩阵的示例。我成功地为两列列表做到了这一点。我已经尝试了在网上可以找到的所有解决方案,但似乎我错过了一个小步骤。

我尝试了什么

我的变量是用户、国家/地区、书籍

User<-c("maman","sophia","Antoine")  
Country<-c("Canada","USA","Mexico")
books<-c("Coelho","Rimbaud","The flight")
dat<-data.frame(User, Country,books)


User | Country | books
maman | Canada | Coelho
sophia| USA | Rimbaud
Antoine| Mexico | The flight

第一次尝试

library(igraph)     
m<-as.matrix(dat)
g<-graph.adjacency(m, mode="directed") ### If that worked I could have used
"get.adjacency"

第二次尝试

尝试将数据转换为边缘列表,但由于存在三列而出现错误

el<-as.matrix(dat)       
g=graph.edgelist(el,directed=TRUE) # turns

异常输出

     maman sophia Antoine Canada USA Mexico Coelho Rimbaud The fligth
maman 1 0 1 0 0 0 0 1 0
sophia 0 0 0 0 1 0 1 0 1
Antoine 0 1 1 0 1 0 0 1 0
Canada 1 0 1 0 0 1 0 1 1
USA 0 0 0 1 0 0 0 0 1
Mexico 0 0 0 0 1 1 1 0 0
Coelho 0 0 1 1 0 1 0 1 0
Rimbaud 1 0 1 1 0 0 0 1 1
The fligth 0 1 0 0 1 1 0 0 1

我想查看所有顶点之间的相互作用。与此类似的东西:http://sna.stanford.edu/sna_R_labs/output/lab_1/1.3_Krackhardt_Friendship.pdf

任何帮助或指示将不胜感激!

最佳答案

也许这就是您所追求的:

m <- as.matrix(dat)
el <- cbind(m[, 1], c(m[, -1]))

这里,el 是一个边列表,通过将 m 的第一列与通过删除矩阵子集的维度而得到的向量绑定(bind)而创建 >m[, 2:3] (相当于 m[, -1])。请注意,cbind 中的第一个向量有 3 个元素,而第二个向量有 6 个元素。第一个将被回收到第二个的长度。我们所做的相当于 cbind(rep(m[, 1], 2), m[, -1])

这是我们的边缘列表的样子。

el
## [,1] [,2]
## [1,] "maman" "Canada"
## [2,] "sophia" "USA"
## [3,] "Antoine" "Mexico"
## [4,] "maman" "Coelho"
## [5,] "sophia" "Rimbaud"
## [6,] "Antoine" "The flight"

现在,我们可以通过使用 graph.edgelist 绘制边列表并使用 get.adjacency 提取邻接矩阵来获取邻接矩阵。

get.adjacency(graph.edgelist(el))

## 9 x 9 sparse Matrix of class "dgCMatrix"
## maman Canada sophia USA Antoine Mexico Coelho Rimbaud The flight
## maman . 1 . . . . 1 . .
## Canada . . . . . . . . .
## sophia . . . 1 . . . 1 .
## USA . . . . . . . . .
## Antoine . . . . . 1 . . 1
## Mexico . . . . . . . . .
## Coelho . . . . . . . . .
## Rimbaud . . . . . . . . .
## The flight . . . . . . . . .

关于R:邻接表到邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29290830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com