R 从海量数据集中的邻接矩阵创建edgelist

R 从海量数据集中的邻接矩阵创建edgelist,r,network-programming,R,Network Programming,假设我有大约200万行的以下示例数据: dt <- data.table(event_id=as.character(rep(letters[1:26],80000)),person_id=as.character(rep(letters[1:26],80000)), organizer_id = as.character(rep(letters[1:26],800000))) 这段代码在真实数据集上挂起超过30分钟,实际上不会在上面的示例数据集上生成干净的边缘列表 edge_df_2

假设我有大约200万行的以下示例数据:

dt <- data.table(event_id=as.character(rep(letters[1:26],80000)),person_id=as.character(rep(letters[1:26],80000)), organizer_id = as.character(rep(letters[1:26],800000)))
这段代码在真实数据集上挂起超过30分钟,实际上不会在上面的示例数据集上生成干净的边缘列表

edge_df_2 <- data.frame(name = paste(rownames(adjacency_df)[col(adjacency_df)], colnames(adjacency_df)[row(adjacency_df)], sep="-"),
          val = c(t(adjacency_df)), stringsAsFactors = FALSE)

edge_df_2使用
which
函数,该函数将为您提供邻接矩阵中非零元素的指示 比如:


我不知道从那以后该怎么办。很抱歉回答得太晚。如果有一个二进制邻接矩阵a.mat,它(a.mat==1,arr.ind=TRUE)将为您提供非零元素的索引。所以基本上是一个链接列表。不确定这是你想要的,只是一个建议。让我试试。链接列表是我一直在寻找的
adjacency_matrix <- crossprod(table(rep(dt$event_id, 2), unlist(dt[, c('event_id', 'person_id')])))
Error in table - attempt to make a table with >= 2^31 elements
edge_df_2 <- data.frame(name = paste(rownames(adjacency_df)[col(adjacency_df)], colnames(adjacency_df)[row(adjacency_df)], sep="-"),
          val = c(t(adjacency_df)), stringsAsFactors = FALSE)
edge <- adjacency.to.edgelist(as.matrix(adjacency_df))
which(ad.matrix != 0)