问题描述
我正在尝试复制 How do I delete nodes in igraph in R? 中发布的与攻击率和删除节点相关的函数。我已经重新发布了同样有效的内容,但我不确定的部分。我想要的是模拟那个函数 100 次
这是上一个问题的部分,有效;
library(igraph)
nnodes=100 #number of nodes
test.graph<-barabasi.game(nnodes,.5) #create B-A network
test.graph2=test.graph #create a second B-A network for removing nodes
bar_mat=matrix(0,nrow=nnodes,ncol=1) #create empty matrix
for (i in 1:nnodes){
bar_mat[i,]=sum(test.graph[,i]) #sums up the number of connections of each node
}
vcount(test.graph)
#> [1] 100
# Sample 5 random nodes
`set.seed(1491)`
`a=sample(1:nrow(bar_mat),20)`
`for (i in a) {`
`if(bar_mat[i,]<=mean(bar_mat)){a`
`test.graph2 <- delete.vertices(test.graph2,i)`
`}`
`}`
`#> Error in delete.vertices(test.graph2,i): At iterators.c:759 : Cannot create iterator,invalid vertex id,Invalid vertex id`
`vcount(test.graph2)`
我尝试通过创建一个新的空矩阵来存储 100 个值并添加另一个 for 循环来模拟 (How do I delete nodes in igraph in R?) 中的原始函数来复制它 100 次。我想知道的是;如果我要复制相同的功能 100 次,将删除哪些节点。我得到了一个答案,但我不确定这是否正确,因为当我更改 setseed 编号时,它给了我 0。任何人都可以帮我验证该函数是否重复了 100 次并且它是否正在产生输出或者是否修改要工作的代码,我对 R 中的编码几乎一无所知(因此复制前面的问题)。谢谢。
`bar_mat1=matrix(0,nrow=100,ncol=1) #create empty matrix,`
`#To replicate 100 times`
`for(n in 1:100){`
`# Sample 5 random nodes`
`set.seed(1491)`
`a=sample(1:nrow(bar_mat),20)`
`for (i in a) {`
`if(bar_mat[i,]<=mean(bar_mat)){a`
`test.graph2 <- delete.vertices(test.graph2,i)`
` }`
`bar_mat1<- a`
`a=0 #resetting a`
`}}`
`bar_mat1`
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)