
Ola pessoal. Estou aqui sofrendo para usar listas no R, resumidamente eu estou com dificuldades em criar uma lista de listas. Segue aqui um CMR, espero não esteja muito longo. #Eu tenho uma matriz que é o rede de interação entre algumas especies de hospedeiros e parasitas, por exemplo: dados<-matrix(c(1,1,1,0,0,0, 0,0,1,0,0,0, 0,0,1,0,0,0, 0,0,0,1,0,0, 0,0,0,1,1,0, 0,0,0,0,0,1),byrow=T,ncol=6,nrow=6, dimnames=list(paste("P",1:6,sep=""),paste("H",1:6,sep=""))) dados #E estava querendo ver qual o efeito das extinções dos hospedeiros nos parasitas, então eu crio uma sequencia de extinção de hospedeiros set.seed(13) extinto<-sample(colnames(dados),ncol(dados),replace=F) extinto # vejo de acordo com essas extinções, qts parasitas vão morrendo por falta de hospedeiro, então fiz uma função pra contar isso ext.cont<-function(dados,extintos) { spextintas<-sum(rowSums(dados[,!dimnames(dados)[[2]]%in%extintos,drop=F])<1) return(spextintas) } #ai salvo o resultado num vetor resultado<-rep(NA,ncol(dados)) resultado #loop faço um loop pra ver a sequencia, tipo somente a primeira especie, a primeira e a segunda, as tres primeiras até todas as especies. for(i in 1:ncol(dados)) { resultado[i]<-ext.cont(dados,extinto[1:i]) } resultado #mas ai eu posso fazer isso varias vezes pra ver como é de forma geral final<-cbind(resultado) for (j in 1:4) { extinto<-sample(colnames(dados),ncol(dados),replace=F) for(i in 1:1:ncol(dados)) { resultado[i]<-ext.cont(dados,extinto[1:i]) } final<-cbind(final,resultado) } final matplot(1:6,final,type="b",pch=1,lty=1) #so que eu gostaria de saber quem esta extinguindo também, então fiz uma função ext.list<-function(dados,extintos) { lista.extintos<-rownames(dados)[which(rowSums(dados[,!dimnames(dados)[[2]]%in%extintos,drop=F])<1)] return(lista.extintos) } # e como pode tanto não extinguir ninguem como mais de uma expecie imagino que seja interessante usar uma lista lista.extintos<-list(NA) #loop for(i in 1:ncol(dados)) { lista.extintos[[i]]<-ext.list(dados,extinto[1:i]) } lista.extintos #so que ai so para a contagem, eu conseguia salva varios resultados na forma de uma matriz. #Mas aqui eu não sei o que fazer, extiste alguma forma de eu fazer um objeto que seja uma lista de listas, pra guardar esses resultados. #Outra duvida sobre listas é no caso da lista acima, vamos supor que eu gostaria de saber em qual numero (o [[n]]) o "P2" esta a primeira vez, tem como fazer? #Por exemplo se fosse um vetor eu usaria o teste == , agora sendo uma lista como eu faço pra saber em quais elementos ([[n]]) ele esta, ou a primeira vez que aparece. #E se der pra fazer uma lista de listas, como faz? #Espero não ter sido confuso na terminologia. Muito obrigado e boa a noite a todos :) -- Grato Augusto C. A. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056