0

我正在尝试实施社交网络分析,并以数据集有 3 列的格式排列数据,第一列表示发送者,第二列表示接收者,第三列表示在两方之间发送的消息的强度。

总之,如果我将 2 列中的(总体)不同方视为我网络中没有节点,并尝试将关系(两方之间发送的消息)绘制为边缘。

所以我的数据看起来像(例如):ABC 123 456 7 345 346 10

其中发件人 123 已向第 456 号当事人发送了 7 条消息,第 345 号当事人已向第 346 号当事人发送了 10 条消息

所以我总共有 4 个不同的参与者,其中有 2 个边缘存在

现在在真正的问题中,我有这样的(如上所述)3384 个节点和 3287 个边

所以我将网络初始化为 net<-network.initialize(num_nodes)

当我启动 net[edge_list]<-1 时,我面临错误:“if ((v<1)|| (v>n)) return(numeric(0)) 中的错误:需要 TRUE/FALSE 的缺失值

如果有人可以帮助解决此错误,那就太好了。

4

1 回答 1

0

看起来您使用错误的函数来创建边缘。将net[]网络地址视为邻接矩阵,并且您正在传入和 edgelist。假设您的边缘列表是矩阵或 data.frame 之类的

123 456 7 
345 346 10

然后你可能可以添加类似的边缘:

net <- addEdges(net, tail=edge_list[,1], head=edge_list[,2], names.eval='msg_count', vals.eval=edge_list[,3])
于 2016-05-26T21:47:32.200 回答