来自具有igraph R的数据帧的邻接矩阵

问题描述 投票:2回答:2

我是R和图表的新手,我正在尝试使用图书馆igraph进行社交签名网络。

我有一个包含三列的数据帧(df)。第一个是选民,第二个是接受投票的用户,第三个是投票(-1或1,分别取决于否定或正投票)。

> head(df)

     voter        user      vote
1    ludraman     cjcurrie     1
2    blankfaze    olivo       -1
3    gzornenplatz cjcurrie     1
4    orthogonal   olvion       1
5    andrevan     cerviz       1
6    texture      cjcurrie     1

我想用igraph创建一个图,但首先我需要从df获得邻接矩阵。

我尝试使用库sharpshootR

A <- component.adj.matrix(df[, c(1,2)], mu=df[, 1], co=df[, 2], wt=df[, 3])

有没有一种简单的方法来使用图书馆获得该邻接矩阵?

谢谢。

r networking graph igraph
2个回答
0
投票

如果我的问题正确,你可以使用graph_from_data_frame本身的igraph

数据

d <- structure(list(voter     = c("ludraman", "blankfaze", "gzornenplatz", "orthogonal", 
                                  "andrevan", "texture"), 
                    user      = c("cjcurrie", "olivo", "cjcurrie", "olvion", "cerviz", "cjcurrie"), 
                    vote      = c(1L, -1L, 1L, 1L, 1L, 1L)), 
                    row.names = c("1", "2", "3", "4", "5", "6"), class = "data.frame")

IGRAPH

library(igraph)
g <- graph_from_data_frame(d)
plot(g)

igraph of relations

您可以从那里(根据您的所有数据)使用可视化中的数据的其他部分(如分数)。


0
投票

这个解决方案适用于我的问题:

edge_list <- training_edges[df].                # create a edge list
G <- graph.data.frame(edge_list, directed=TRUE) # create the graph

A <- as_adjacency_matrix(G,type="both",names=TRUE,
sparse=FALSE, attr = "vote")                    # create the adjacency matrix

其中A是邻接矩阵。

© www.soinside.com 2019 - 2024. All rights reserved.