我正在为研究生 SNA 课程做一个项目,我有一个非常大的数据集,我需要从中创建一个双向网络。问题是我从客户端收到的数据的格式不便于这种转换,而且它太大而无法手动编辑(6k+ 行和 112 列)。基本上,数据包含一组作为列名的业务名称和一组作为行名的客户编号,并且 CSV 的所有字段都包含表示关系的“1”或表示没有关系的“0”。这项任务的目标是使用网络分析工具来提供有关哪些企业共享客户端的信息。到目前为止,我的代码如下:
library(igraph)
MayJun <- read.csv("May_June_Overlap.csv",
header = TRUE,
row.names = 1)
MJ <- as.data.frame(MayJun, what = c("both"))
head(MJ)
gMJ <- graph_from_data_frame(MJ,
directed = FALSE)
elMJ <- get.edgelist(gMJ)
当我检查 MJ 的头部时,R 显示数据已正确导入,并且所有行和列都已正确标记(不幸的是,出于隐私原因,我无法在此处共享输出),但是当我尝试从中提取边缘列表时gMJ,我最终将使用它来创建二分网络,R 给了我以下(部分)输出:
[,1] [,2]
[1,] "1" "0"
[2,] "1" "0"
[3,] "0" "0"
[4,] "0" "0"
[5,] "0" "0"
[6,] "0" "0"
[7,] "0" "0"
[8,] "0" "0"
[9,] "0" "0"
[10,] "0" "0"
我想要返回的是更类似于下面的内容(括号中的 [row/column#] 代表公司名称/客户编号:
"[ROW1]" "[COLUMN6]"
"[ROW2]" "[COLUMN20]"
etc.
任何想法都会非常有帮助