示例1:通过加载静态扩散网络as_diffnet
对于此示例,我们将使用假调查
和fakeEdgelist(假边缘列表)
数据集。后者是使用生成的这个假调查
数据集,其中包含调查信息从两个不同组的10个不同个体中提取。联系这个fakeEdgelist(假边缘列表)
数据集是有价值的,其价值与每个人在调查结果相互影响。
#加载数据集
数据(“假调查”)
数据(“fakeEdgelist”)
看一看假调查
的组
和身份证件
列和fakeEdgelist(假边缘列表)
的自我
和改变
用户可以知道后面有哪些列通过累加生成组*100
具有身份证件
.
#id组# 1 1 1# 2 2 1# 3 3 1# 4 4 1# 5 5 1# 6 1 2
#自我改变价值# 1 102 101 1# 2 103 102 1# 3 102 103 1# 4 105 103 1# 5 105 104 2# 6 104 105 1
我们稍后将使用此信息验证数据的方式在结果中排序差异网络
物体。
要使用as偏移网
我们至少需要两个函数对象:a动态图形表示为数组或邻接矩阵列表,每个大小\(n次n次),在我们的情况下将是\(10乘以10),和整数向量大小为\(n=10)其中包含每个顶点的收养时间。让我们从生成使用th的动态图边缘列表_调整
功能:
#将边列表强制为邻接矩阵
邻接<- 边缘列表_调整(
边缘主义者=fakeEdgelist[,1:2],#应为两列矩阵/数据框架
w个=fakeEdgelist(假边缘列表)$值,#带权重的可选向量
无方向的= 错误的,#在这种情况下,边缘列表被定向
t吨= 5)#我们使用此选项制作它的5个副本
#edgelist_to_adgmat.matrix(as.matrift(edgelist),w,t0,t1,t,中出现警告:某些边a在-times-或-w-上的值为NA/NULL:# 11#这些不会包含在邻接矩阵中。完整的列表将存储为结果邻接矩阵的属性,即-不完整-。
正如函数警告的那样,有一条边不完整信息,并且进一步未用于创建邻接矩阵,边缘11。如果我们看一下这条边,我们会发现它确实如此权重属性信息不完整:
fakeEdgelist(假边缘列表)[11,,下降=错误的]
#自我改变价值#11 202<不适用>不适用
为了解决这个问题,如果我们想保留顶点202数据中的孤立顶点,我们需要填充该值,以便在创建diffnet对象不会有任何问题图中顶点的属性或采用时间。
#填写空数据并检查结果
fakeEdgelist(假边缘列表)[11,“价值”]<- 1
fakeEdgelist(假边缘列表)[11,,删除=错误的]
#自我改变价值#11 202<不适用>1
#将边列表强制为邻接矩阵(再次)
邻接<- 边缘列表_调整(
边缘主义者=fakeEdgelist[,1:2],#应为两列矩阵/数据框架
w个=fakeEdgelist(假边缘列表)$值,#带权重的可选向量
无方向的= 错误的,#在这种情况下,边缘列表被定向
保持隔离= 真的,#通知这个新的论据!
t吨= 5)#我们使用此选项制作5个副本
正如预期的那样,没有任何警告。此外,我们已经告诉函数,如果有孤立的顶点来保持它们,如中所示具有顶点202的边#11的情况。自从我们问函数创建邻接矩阵的5个副本,我们有一个列表长度5,带邻接矩阵。让我们看一下第一个元素此列表中的:
#类“dgCMatrix”的9 x 9稀疏矩阵# 101 102 103 104 105 201 202 205 210# 101 . . . . . . . . .# 102 1 . 1 . . . . . .# 103 . 1 . . . . . . .# 104 . . . . 1 . . . .# 105 . . 1 2 . . . . .# 201 . . . . . . . . .# 202 . . . . . . . . .# 205 . . . . . 1 . . 1# 210 . . . . . 1 . 1 .
正如你所见边缘列表_调整
函数保持顶点标签并将其作为点名包含在矩阵中。既然我们的邻接矩阵具有我们期望的元素数量实际上与假调查
数据集,我们可以创建一个差异网络
对象:
#将邻接矩阵和边缘列表强制转换为diffnet对象
差异网络<- as_diffnet(
图表=调整,#传递动态图
toa公司=假调查$到,#这是必需的
顶点静态属性=假调查#Is是可选的
)
#查看diffnet对象
微分网络
#类diffnet的动态网络-#名称:扩散网络#行为:未指定#节点数:9(101、102、103、104、105、201、202、205…)#时段数:5(1-5)#类型:定向#最终流行率:0.89#静态属性:id、toa、group、net1、net2、net3、age、gender、not。。。(9)#动态属性:-
示例2:通过加载静态扩散网络边缘列表_to_diffnet
按照前面的示例,而不是“手动”生成邻接矩阵并调用as_diffnet
功能,我们将使用边缘列表_to_diffnet
功能。最多调用此例程时的重要问题是要有匹配的id在edgelist和属性数据集之间。所以在调用边缘列表_to_diffnet
我们需要修复身份证件
中的列假调查
数据集:
# [1] 1 2 3 4 5 1 2 5 10
#更改id
假调查$身份证件<- 具有(fakesurvey,组*100 +标识)
#之后
假调查$身份证件
# [1] 101 102 103 104 105 201 202 205 210
既然已经修复,我们可以调用边缘列表_to_diffnet
功能
差异2<- 边缘列表到偏移网(
边缘主义者=fakeEdgelist[,1:2],#传递给edgelist_to_adgmat
周=fakeEdgelist(假边缘列表)$值,#传递给edgelist_to_adgmat
日期=假调查,#带有-idvar和-toavar的数据帧-
独立数据变量= “id”,#-idvar-in-dat的名称-
托瓦尔= “toa”,#toavar-in-dat的名称-
保持隔离= 真的 #传递给edgelist_to_adgmat
)
#check_var_class_and_cerce(x,edgelist,c(“factor”,“integer”,:#强迫自我成为性格。
#check_var_class_and_cerce(x,edgelist,c(“factor”,“integer”,:#强制改变字符。
#类diffnet的动态网络-#名称:扩散网络#行为:未指定#节点数:9(101、102、103、104、105、201、202、205…)#时段数:5(1-5)#类型:定向#最终患病率:0.89#静态属性:group、net1、net2、net3、age、gender、note(7)#动态属性:-
与前面的例子不同,这里的算法确保数据集和相邻顶点的顺序矩阵重合。前面的示例确实为我们提供了一个正确排序的差异网络
对象,但情况可能并不总是这样。然而,选择id.and.per.变量
允许用户提供顶点属性中变量的名称保存每个观察的id和时间段id的数据集,因此该函数在将数据强制转换为diffnet之前对其进行排序物体。在以下示例中对此进行了详细介绍。