用igraph读取CSV数据

时间:2018-04-12 05:14:48

标签: r igraph

我从http://snap.stanford.edu/data/soc-sign-bitcoinotc.html

下载了soc-sign-bitcoinotc数据集

我正在尝试使用igraph来读取此数据,但我不确定如何或从何处开始。

CSV中的每一行都有一个评级,按时间排序,格式如下:

SOURCE, TARGET, RATING, TIME

示例数据:

6   2   4   1289241912
6   5   2   1289241942
1   15  1   1289243140

我试过了:

dat = read.csv('soc-sign-bitcoinotc.csv', header=FALSE)
mat = as.matrix(dat)
g = graph.adjacency(mat, mode = c('directed'), weighted = TRUE)

但是我收到了这个错误:

Error in graph.adjacency.dense(adjmatrix, mode = mode, weighted = weighted,  : 
  not a square matrix

我假设我的数据结构使用了错误的方法

1 个答案:

答案 0 :(得分:1)

我想你想要graph.data.framedat的前两列用于边列表。其余列假定为边缘属性。

g <- graph.data.frame(dat)

要使顶点使用V()

head(V(g))
+ 6/5881 vertices, named, from 6ace412:
[1] 6  1  4  13 7  2 

要使边缘使用E()

head(E(g))
+ 6/35592 edges from 6ace412 (vertex names):
[1] 6 ->2  6 ->5  1 ->15 4 ->3  13->16 13->10

属性:

head(E(g)$rating)
[1] 4 2 1 7 8 8

head(E(g)$time)
[1] 1289241912 1289241942 1289243140 1289245277 1289254254 1289254301