我从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
我假设我的数据结构使用了错误的方法
答案 0 :(得分:1)
我想你想要graph.data.frame
。 dat
的前两列用于边列表。其余列假定为边缘属性。
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