2017-05-08 67 views
-1

我正在尝试使用R二分包来分析一个双方网络。我导入了一个csv文件并将其转换为单模式网络。这里是我的代码:双方网络错误

library(igraph) 
library(bipartite) 
g <- as.network(data) 
net <- as.one.mode(g, fill = 0, project="full", weighted=TRUE) 
summary(net) 
vcount(net) 
ecount(net) 

但是,当我尝试使用以下命令计算网络指标时,它给我一个错误。

betweenness_w(net, directed=NULL, alpha=1) 

这里是错误信息。

Error in if (NC == 2) net <- data.frame(tmp[, 1], tmp[, 2]) : 
    argument is of length zero 

我很欣赏一些帮助

+2

如果您提供了[样本输入数据] [可重现示例](http://stackoverflow.com/questions/5963269/how-to-make-a- great-r-reproducible-example),它会更容易帮助您 – MrFlick

回答

0

你可能是混淆了矩阵igraph图形对象。

例如,我可以通过喂食一个图形对象的betweeness_w功能复制你的错误:

> g=make_full_graph(5) 
> ecount(g) 
[1] 10 
> betweenness_w(g) 
Error in if (NC == 2) net <- data.frame(tmp[, 1], tmp[, 2]) : 
    argument is of length zero 

betweenness_w希望加权边列表。请参阅文档。

当然这是猜测,因为你没有给我们一个可重复的例子。

+0

非常感谢。这非常有帮助。你能告诉我如何从一个有两列的csv文件(代表两种类型的节点)创建一个加权边界列表吗? – Chamil

+0

您应该编辑您的问题以阐明您正在尝试执行的操作,并包含CSV文件样本和其他任何数据。如果你不能编辑这个问题,请开始一个新问题。 – Spacedman