簡體   English   中英

使用igraph從大型csv數據集創建鄰接網絡矩陣(或列表)

[英]creating adjacency network matrix (or list) from large csv dataset using igraph

我正在嘗試在igraph中進行網絡分析,但是由於列數不同,在將數據集轉換為邊緣列表(帶有權重)時會遇到一些問題。

數據集如下所示(當然要大得多):首先是主操作員ID(主操作員也可以是伙伴,反之亦然,因此ID在鄰接處保持不變)挑戰是伙伴數量會變化(從0到40)。

IdMain IdPartner1  IdPartner2  IdPartner3 IdPartner4 .....
1      4           3           2          NA
2      3           1          NA          NA
3      1           4           7          6
4      9           6           3          NA
.
.

我的問題是如何將其轉換為無權重的邊緣列表(僅表示交互):

Id1 Id2 weight
1   2    2
1   3    2
1   4    1
2   3    1    
3   4    2
.   .

有沒有人給小費最好的方法是什么? 提前謝謝了!

這是經典的重塑任務。 您可以為此使用reshape2包。

text <- "IdMain IdPartner1  IdPartner2  IdPartner3 IdPartner4
1      4           3           2          NA
2      3           NA          NA         NA
3      1           4           7          6
4      9           NA          NA         NA"

data <- read.delim(text = text, sep = "")

library(reshape2)
data_melt <- reshape2::melt(data, id.vars = "IdMain")
edgelist <- data_melt[!is.na(data_melt$value), c("IdMain", "value")]

head(edgelist, 4)
#   IdMain value
# 1      1     4
# 2      2     3
# 3      3     1
# 4      4     9

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM