2

我有数据提供有关参与者 c 的流的信息,这些信息按源自源 s 的输入分解到合作伙伴 p。

网络数据通常只有一个信息:数据/信息从 A->B、B->C 等流动。

但是,我的数据显示哪些从 A->B 流向 C,哪些从 A->B 流向 D。

数据结构为三列边缘列表。

source <- c("A", "D", "B", "B")
country <- c("B", "B", "A", "A")
partner <- c("C", "C", "C", "D")
value <- c("5", "0", "2", "4")

df <- data.frame(source, country, partner, value)

df

我有点不明白如何将其用作网络数据 - 但是,如果有人知道如何使用这种方式更细粒度的网络,那就太棒了((:

最好的,

莫里茨

4

2 回答 2

0

我不确定下面的代码是否是您想要的

library(igraph)
v <- c(3,1)
g <- Reduce(union,lapply(v, function(k) graph_from_data_frame(df[-k])))

这样plot(g)

在此处输入图像描述

于 2020-10-05T12:59:41.123 回答
0

也许是这样的:

library(igraph)

g <- graph_from_data_frame(
  rbind(
    setNames(df[, c(1, 2, 4)], c("from", "to", "value")),
    setNames(df[, c(1, 3, 4)], c("from", "to", "value"))
  )
)

plot(g)

在此处输入图像描述

于 2020-10-05T12:28:54.480 回答