R igraph degree()'match.arg中的错误'

时间:2016-12-15 19:41:54

标签: r igraph sna

我有一个有向图,并希望导出一个顶点表,其中包含“度数”,“超出度”和“总度”等指标,这些都是一体的。

g <- graph( c("John", "Jim", "Jim", "Jill", "Jill", "John"))

现在我们有了一个样本有向图,我希望得到每个顶点的入,出和总度。

degree(g, mode = c("in", "out", "total"))

返回此错误:

  

match.arg中的错误(arg = arg,choices = choices,few.ok =   几个):'arg'的长度必须为1

我做错了什么?我可以单独完成每一个,但我不知道如何将它们连接在一起。

2 个答案:

答案 0 :(得分:1)

degree中的igraph函数不接受这样的多个参数。使用sapply迭代不同的调用mode参数:

sapply(list("in","out","total"), function(x) degree(g, mode = x))

它返回连续列中的值:

> sapply(list("in","out","total"), function(x) degree(g, mode = x))
     [,1] [,2] [,3]
John    1    1    2 
Jim     1    1    2
Jill    1    1    2

答案 1 :(得分:0)

将每个人列入,列出和总列表后

idl <- degree(g, mode="in")
odl <- degree(g, mode="out")
tdl <- degree(g, mode="total")

将它们转换为数据框

idl <- data.frame(idl)
odl <- data.frame(odl)
tdl <- data.frame(tdl)

然后使用cbind

进行组合
> cbind(idl,odl,tdl)
     idl odl tdl
John   1   1   2
Jim    1   1   2
Jill   1   1   2