首页 文章

R中的邻接矩阵

提问于
浏览
5

我想从csv文件中找到包含如下信息的邻接矩阵:

A B 
1 2
1 3
1 4
2 5
3 7

等等 . 有100个节点,但每次我尝试创建一个矩阵并随后绘制图形时,错误是它是一个非方形矩阵 . 有人能帮我解决R中的正确代码吗?

2 回答

  • 7

    你有什么是边缘清单 . 您可以从中构建图形,然后将其转换为邻接矩阵:

    library(igraph)
    get.adjacency(graph.edgelist(as.matrix(dat), directed=FALSE))
    

    (使用Tyler的答案中的 dat ) . 这给了

    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 . . . .
    
  • 15

    也许是这样的:

    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

相关问题