问题描述
我正在使用R和statnet对每小时的计算机网络流量进行ERGM分析。我已决定在我的ERGM术语中使用总和b1starmix和b2twostar。 ERGM将边缘列表形式的csv文件(源ip,dest ip,传输的字节)作为输入,并且b1starmix和b2twostar需要附加列表以将ip节点标记为主机或服务器。目前,我的代码抛出了这样的错误:
locate.InitFunction(term,paste0(termroot,“ Term”),“ ERGM term”,:中的错误: 找不到ERGM术语'sum'初始化函数'InitErgmTerm.sum'。
我认为我从csv输入创建的网络对象可能存在问题,然后将其馈入ERGM。有人可以看看我的代码并指出任何明显的问题吗?
这是我运行ERGM的方法:
runErgm <- function(){
currErgmModel <- ergm(networkHour~sum+b1starmix(3,"server")+b2twostar("server","host"),control = control.ergm(MCMLE.maxit = 20,MCMC.interval = 10000,MCMC.burnin = 50000,MCMC.samplesize = 10000))
return (currErgmModel)
}
这是主要功能
edgeList <- as.matrix(read.csv(file = "edgelist.csv",header = TRUE))
labelList <- read.csv(file = "labellist.csv",header = TRUE)
#convert from edgelist to adjacency form
nodes <- unique(c(edgeList[,1],edgeList[,2]))
Adj <- matrix(0,length(nodes),length(nodes))
rownames(Adj) <- colnames(Adj) <- nodes
Adj[ edgeList[,1:2] ] <- as.numeric( edgeList[,3])
#create model network for specific hour
networkHour <-network(Adj,vertex.attr=labelList,directed=TRUE,matrix.type="adjacency",bipartite=TRUE,ignore.eval=FALSE)
try(ergmModel <- runErgm())
if(!is.null(ergmModel)){
currValue <- data.frame(hour,sum = ergmModel$coef[1],b1starmix=ergmModel$coef[2],b2twostar=ergmModel$coef[3])
values <- rbind(values,currValue)
write.csv(values,file = outfile)
}
else{
print(paste0("Could not calculate ERGM terms")
}
当我运行它时,主要方法转到“无法计算ERGM术语”消息,这意味着runERGM方法错误或我的网络对象错误。无论如何,我们将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)