2016-12-15 31 views
0

我有一个有向图并希望导出一个顶点表,其中包含“度”,“出度”和“总度”等度量在一个。R igraph degree()'error in match.arg'

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

既然我们有一个样本有向图,我想要列出每个顶点的入,出和总度。

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

返回此错误:

错误match.arg(ARG ARG =,选择=选择,several.ok = several.ok): 'ARG' 必须是长度为1的

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

回答

1

igraph中的degree函数不接受那样的多个参数。使用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 
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