J'ai une liste contenant 3 000 réseaux. Pour chacun d'eux, j'ai besoin de calculer la densité parmi les altères dont l'attribut "att" == 1. J'ai essayé plusieurs options, et voici mon code final (j'expérimente juste avec 3 réseaux). Le principal problème est que certains réseaux ne contiennent aucun alter pour lequel "att" == 1. Puisque get.inducedSubgraph ne fonctionne pas pour ces cas, j'essaie de les éliminer. Cependant, je reçois toujours un message d'erreur. En essayant différentes options il me semble que le message apparaît quand je n'ai que deux alters dans le réseau et qu'il n'y a pas de lien entre eux (densité = 0). Est-ce possible? Sinon, quelle erreur suis-je en train de faire?get.inducedSubgraph isolées isolées
m1 <- matrix(rbinom(25,1,.4),5,5)
diag(m1) <- 0
g1 <- network(m1)
set.vertex.attribute(g1,"att",as.character(rep(0:1,dim(m1)[1])))
m2 <- matrix(rbinom(36,1,.4),6,6)
diag(m2) <- 0
g2 <- network(m2)
set.vertex.attribute(g2,"att",as.character(rep(0:1,dim(m2)[1])))
m3 <- matrix(rbinom(36,1,.4),6,6)
diag(m3) <- 0
g3 <- network(m3)
set.vertex.attribute(g3,"att",as.character(rep(0,dim(m2)[1])))
net.list=list(g1,g2,g3)
size=vector()
for(i in 1:length(net.list))
size[[i]]=sum(get.vertex.attribute(net.list[[i]], "att")=="1")
size
[1] 2 3 0
density=vector()
for(i in 1:length(net.list))
density[[i]]=ifelse(size[[i]]>1, gden(get.inducedSubgraph(net.list[[i]],v=which(net.list[[i]]%v%"att"=="1"))), NA)
Error in `[<-`(`*tmp*`, nal, 3, value = NA) : subscript out of bounds