我如何在 R 中生成部分随机和部分任意的网络图
How can i generate a network graph which is part random and part arbitrary in R
我有一个 table 网络图数据。 table如下:
df <- data.frame(ResponseID =
c('573829292', '638239391', '630719030', '632932937'),
know_anyone = c(9,16,12,32))
如果每个 ResponseID 都是随机连接到其他 ResponseID 的节点,但也以类似星形的方式连接到由 'know_anyone' 列中的数字表示的许多其他节点,我如何生成网络图?
首先制作一个数据帧重复IDknow_anyone
次,节点序号从1到N:
> dstars = data.frame(
src=rep(df$ResponseID,df$know_anyone),
dst=paste0("N",1:(sum(df$know_anyone))))
然后创建一个随机图。我将通过获取从 1 到 M(此处 M=4)的两个数字的所有组合来为原始节点创建一个完整的图表。 Rbind 那个,或者你的图表从原始节点之间的连接,到上面并制作一个图表:
> g = graph.data.frame(
rbind(
data.frame(
src=df$ResponseID[combn(nrow(df),2[1,]],
dst=df$ResponseID[combn(nrow(df),2)[2,]]
),
dstars)
)
不要将它用于您的 1000 个节点,因为这将生成具有 50 万条边的图 - 我假设您的随机图将少于此数量(或者您的 RAM 比我多!)。
我有一个 table 网络图数据。 table如下:
df <- data.frame(ResponseID =
c('573829292', '638239391', '630719030', '632932937'),
know_anyone = c(9,16,12,32))
如果每个 ResponseID 都是随机连接到其他 ResponseID 的节点,但也以类似星形的方式连接到由 'know_anyone' 列中的数字表示的许多其他节点,我如何生成网络图?
首先制作一个数据帧重复IDknow_anyone
次,节点序号从1到N:
> dstars = data.frame(
src=rep(df$ResponseID,df$know_anyone),
dst=paste0("N",1:(sum(df$know_anyone))))
然后创建一个随机图。我将通过获取从 1 到 M(此处 M=4)的两个数字的所有组合来为原始节点创建一个完整的图表。 Rbind 那个,或者你的图表从原始节点之间的连接,到上面并制作一个图表:
> g = graph.data.frame(
rbind(
data.frame(
src=df$ResponseID[combn(nrow(df),2[1,]],
dst=df$ResponseID[combn(nrow(df),2)[2,]]
),
dstars)
)
不要将它用于您的 1000 个节点,因为这将生成具有 50 万条边的图 - 我假设您的随机图将少于此数量(或者您的 RAM 比我多!)。