[R-br] Ajuda com uso de list(). Como fazer uma lista de listas?

Augusto Ribas ribas.aca em gmail.com
Domingo Junho 24 16:49:02 BRT 2012


Obrigado Benilton.
Eu consegui chegar onde queria.
Eu queria isso:

#função pra ver qual parasitas esta extinguindo dados a morte dos
hospedeiros extintos
ext.list<-function(dados,extintos) {
  lista.extintos<-rownames(dados)[which(rowSums(dados[,!dimnames(dados)[[2]]%in%extintos,drop=F])<1)]
  return(lista.extintos)
  }

##################################################################
#exemplo
##################################################################

dados<-matrix(c(1,1,0,0,0,0,
                0,1,1,0,0,0,
                0,0,1,1,0,0,
                0,0,0,1,1,0,
                0,0,0,0,1,1,
                1,0,0,0,0,1),byrow=T,ncol=6,nrow=6,
                dimnames=list(paste("P",1:6,sep=""),paste("H",1:6,sep="")))
dados

#quem vai extinguir
extinto<-sample(colnames(dados),ncol(dados),replace=F)
extinto

lista.extintos<-list(NA)

#Primeiro caso
#loop
for(i in 1:ncol(dados)) {
  lista.extintos[[i]]<-ext.list(dados,extinto[1:i])
  }

lista.extintos

#Criando uma lista pra receber outras simulações
lista.final<-list(lista.extintos)
lista.final

#fazendo mais 9 pra interar 10
for (j in 2:10) {
    extinto<-sample(colnames(dados),ncol(dados),replace=F)
  for(i in 1:ncol(dados)) {
  lista.extintos[[i]]<-ext.list(dados,extinto[1:i])
  }
  lista.final[[j]]<-lista.extintos
  }

#agora fico com 10 listas e cada lista tem 6 itens, eu não estava
conseguindo usar o listas pra poder ficar separada as listas
#treinando com seu exemplo eu consegui visualizar como fazer
lista.final

hist.final<-matrix(NA,ncol=10,nrow=6,dimnames=list(paste("P",1:6,sep=""),paste("Simulação",1:10,sep="
")))

#ai uma utilidade é a  outra pergunta, ver qd a sp estinguiu
hist.final

for(j in rownames(hist.final)) {
    for(i in 1:10) {
    hist.final[j,i]<-which(mapply("%in%",j, lista.final[[i]]))[1]
    }
  }

#a principio essa era a resposta que eu queria
hist.final

Agora tenho que trocar esses loops por applys.
Mas muito obrigado pela ajuda :)
Assim ja da pra brincar como mudanças na matriz e nas probabilidades
de extinção afetam quando os parasitas estão sendo extintos :)

-- 
Grato
Augusto C. A. Ribas

Site Pessoal: http://augustoribas.heliohost.org
Lattes: http://lattes.cnpq.br/7355685961127056


Mais detalhes sobre a lista de discussão R-br