我想从一个包含以下信息的csv文件中找到邻接矩阵:
A B
1 2
1 3
1 4
2 5
3 7
等等,有100个节点,但每次我尝试创建一个矩阵并随后绘制图形时,出现的错误是它是一个非方阵。有人能帮我提供R语言的正确代码吗?
我想从一个包含以下信息的csv文件中找到邻接矩阵:
A B
1 2
1 3
1 4
2 5
3 7
等等,有100个节点,但每次我尝试创建一个矩阵并随后绘制图形时,出现的错误是它是一个非方阵。有人能帮我提供R语言的正确代码吗?
你手头的是一个边缘列表。你可以从中构建一个图,然后将其转换为邻接矩阵:
library(igraph)
dat <- read.table(text="A B
1 2
1 3
1 4
2 5
3 7", header=TRUE)
get.adjacency(graph.edgelist(as.matrix(dat), directed=FALSE))
那给了
7 x 7 sparse Matrix of class "dgCMatrix"
[1,] . 1 1 1 . . .
[2,] 1 . . . 1 . .
[3,] 1 . . . . . 1
[4,] 1 . . . . . .
[5,] . 1 . . . . .
[6,] . . . . . . .
[7,] . . 1 . . . .
dat <- read.csv("path/to/file.csv", header=TRUE)
的代码从 csv 文件中读取表格数据吗?Brian的答案很好,但他(合理地)假设你已经将数据读入了一个两列数据框中... - Josh O'Brien可能是这样的:
dat <- read.table(text="A B
1 2
1 3
1 4
2 5
3 7", header=TRUE)
x <- table(dat)
x %*% t(x)
igraph::graph.data.frame
。?graph.data.frame
和?graph.constructors
将提供更多信息。 - thelatemail