如何在R的latentnet包中添加edgecov()ergmm模型项

时间:2019-03-25 12:21:03

标签: r social-networking statnet

我有一个由作者和主题组成的时态双向网络,我正在制作一个ML模型,其中包括一个必须表示边缘持久性特征的术语。 我在R中使用latentnet包。

因此,我添加了一个名为“ edge_persistence”的网络属性,并尝试添加一个edgecov()术语。当我包含这个edgecov()字词时,我会收到此错误。

  

xa [cbind(pl $ xmat [,1:2,drop = FALSE],k)中的错误] <-pl $ xmat [,k +   2]:下标超出范围

这是部分源代码:

#creating the network
net <- network(year_matrix, vertex.attr = NULL, vertex.attrnames = NULL, directed = FALSE, hyper = FALSE, loops = FALSE, multiple = FALSE, bipartite = 2)

#calculating the number of edges
no_of_edges = 0
for(i in c(1:length(author_nodes)))
{
  for(j in c(1:length(topic_nodes)))
  {
    no_of_edges = no_of_edges+1
  }
}

#forming the edge_persistance_vector
edge_persistance_vector <- vector("numeric", no_of_edges)
temp_itr=1
for(i in c(1:length(author_nodes)))
{
  for(j in c(1:length(topic_nodes)))
  {
    if(year_matrix[i, j]==1)
    {
      if(prev_year_matrix[i, j]==1)
      {
        edge_persistance_vector[temp_itr] = 1
      }
      else
      {
        edge_persistance_vector[temp_itr] = 0
      }
    }
    else
    {
      edge_persistance_vector[temp_itr] = 0
    }
    temp_itr = temp_itr+1
  }
}

#adding the network attribute
set.network.attribute(net, attrname = "edge_persistance", value = edge_persistance_vector)

#making the model
ergmm_result <- ergmm(formula = net ~ euclidean(d=2, G=3) + rsociality(var=1, var.df=3) + edgecov("edge_persistance"), verbose = TRUE) 

如果我包含edgecov("edge_persistance")一词,这就是我得到的错误

  

xa [cbind(pl $ xmat [,1:2,drop = FALSE],k)中的错误] <-pl $ xmat [,k +   2]:下标超出范围

有人可以建议我如何解决此“下标超出范围”错误吗? 在此先感谢!

0 个答案:

没有答案