我想使用数据库创建边缘列表以执行网络分析。
这里有一些图片来说明我想做什么。
以下图片是我的数据库的一个子集。
以下是使用dput()的详细信息:
mydata <- structure(list(DoctID = c("D1", "D1", "D1", "D2", "D2",
"D3", "D4", "D4", "D4", "D4"), HospID = c("H1", "H2", "H4", "H1",
"H3","H1", "H1", "H2", "H3", "H4"), Period1 = c(0L, 1L, 1L, 1L, 0L,
1L, 0L, 1L, 1L, 1L)), row.names = c(NA, -10L), class = c("tbl_df",
"tbl", "data.frame"), spec = structure(list(cols = list(DoctID
=structure(list(), class = c("collector_character", "collector")),
HospID = structure(list(), class = c("collector_character",
"collector")), Period1 = structure(list(), class =
c("collector_integer", "collector"))), default = structure(list(),
class = c("collector_guess", "collector"))), class = "col_spec"))
我想创建一个具有权重的边列表,如果同一位医生在1期去过两家医院,则将两个医院链接起来。如果在1期去过给定医院,则有1分列“期间1”,否则为0。权重对应于在期间1曾去过两家相同医院的医生人数。
例如,D1在Period1中已到达H2和H4,并且在D4中也到达过。因此,H2和H4之间的边缘权重为2。
这里是我想要获取的边缘列表的图片:
由于网络是无向的,因此边缘列表应该是对称的。