[R-sig-eco] doubt in generating loops with For

Thierry Onkelinx thierry.onkelinx at inbo.be
Fri Apr 17 09:54:58 CEST 2015


Dear Thiago,

This will highlight the problem.

 for (z in 1:1000)
  {
  comm1<-apply(comm,2,sample)
cat("ncol: ", ncol(comm), " z: ", z, "\n")
  func.sim[z,]<- (t(comm[, z]) %*% (as.matrix(dist)^2) %*% comm[,
z])/2/(sum(comm[, z])^2)
  }


ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and
Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to say
what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey

2015-04-16 20:35 GMT+02:00 Thiago A. Pires <pires.thiagoaugusto at gmail.com>:

> Hi Vít,
>
> Thank you for your quick response. Indeed, I did not put all the code,
> because I thought it would mess up more than help. But I'll put here the
> full code. I realized the issue of columns, I had come to this conclusion
> also. However, I would like to generate a "random" matrix of  community
> based in a "real" community  in every loop, and likewise, generating a
> diversity measure of these communities, also in each loop. If you can help
> me with this question , I'd appreciate.
>
> Code:
>
> require (vegan)
>
> comm<-t(data.frame(sp1=rpois(10, 1), sp2=rpois(10,1), sp3=rpois(10,1),
>                        sp4=rpois(10,1), sp5=rpois(10,1)))
>
> traits<-t(data.frame(sp1=rnorm(5,1.2,.2),sp2=rnorm(5,2,.5),
>                      sp3=rnorm(5,3,.3), sp4=rnorm(5,0.5,.2),
> sp5=rnorm(5,.9,.6)))
>
> dist<-vegdist(traits,"gower")
> comm<-as.matrix(comm)
> func.sim<-data.frame(rep(NA, 1000))
>
>  for (z in 1:1000)
>   {
>   comm1<-apply(comm,2,sample)
>   func.sim[z,]<- (t(comm[, z]) %*% (as.matrix(dist)^2) %*% comm[,
> z])/2/(sum(comm[, z])^2)
>   }
>
> Error in comm[ ,z] : subscript out of bounds
>
>
>
>
>
> Best regards,
>
> Thiago
>
>
>
> _____________________________________________________________
>
> *Thiago A. Pires*
> Ph.D. student in Ecology -  Instituto de Biologia - UNICAMP
> Collaborator Researcher - Laboratório de Ecologia e Sistemática - UNIFESP
>
>
> Email: pires.thiagoaugusto at gmail.com / Skype: thiago.augusto.pires
> Home Page:
> http://thiagoaugustopires.wix.com/naturevisions
> CV Lattes:
> http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4298681Z0
> _____________________________________________________
>
>
>
>
>
> 2015-04-16 4:40 GMT-03:00 Vít Syrovátka <syrovat at sci.muni.cz>:
>
> > Hi Thiago,
> > I am not familiar with the diversity measure you are trying to calculate
> > and your example code is not complete - one can not simulate your comm
> and
> > dist objects.
> > But at the first sight one can see that in your loop you are trying to
> > select columns 1, 2, 3,... 1000 from the comm matrix, which probably has
> > only 10 columns (if sites are in columns and species in rows, contrary to
> > how such data are traditionally stored).
> >
> > for(z in 1:10)
> > instead of
> > for(z in 1:1000)
> > should do the job.
> >
> > Vit
> >
> > Dne 2015-04-15 23:24, Thiago A. Pires napsal:
> >
> >> Hi guys,
> >>
> >> I have a question when trying to generate 1000 measures with "for"
> >> function. For example, I have 10 locations with 5 species , and I want
> to
> >> apply a diversity measure on each site. But when I try to run one is
> with
> >> my function, I can not, I get an error message: "Error in com[, z] :
> >> subscript out of bounds", and I think it should be a simple mistake, but
> >> I'm not seeing. If you guys can help with it, I would appreciate. Right
> >> below is an example for my code:
> >>
> >> comm= a community matrix with 10 sites and 5 species
> >> dist= a pairwise distance-based matrix of species
> >> ​
> >> ​ for (z in 1:1000)
> >>   {
> >>
> >>   func.sim[z,]<- (t(comm[, z]) %*% (as.matrix(dist)^2) %*%
> >>                  comm[, z])/2/(sum(comm[, z])^2)​
> >>
> >>   }
> >>
> >>
> >> ​Error in comm[, z] : subscript out of bounds​
> >>
> >>
> >>
> >>
> >>
> >>
> >> ​Best regards,
> >>
> >> Thiago.​
> >>
> >>
> >> _____________________________________________________________
> >>
> >> *Thiago A. Pires*
> >> Ph.D. student in Ecology -  Instituto de Biologia - UNICAMP
> >> Collaborator Researcher - Laboratório de Ecologia e Sistemática -
> UNIFESP
> >>
> >>
> >> Email: pires.thiagoaugusto at gmail.com / Skype: thiago.augusto.pires
> >> Home Page:
> >> http://thiagoaugustopires.wix.com/naturevisions
> >> CV Lattes:
> >> http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4298681Z0
> >> _____________________________________________________
> >>
> >>         [[alternative HTML version deleted]]
> >>
> >> _______________________________________________
> >> R-sig-ecology mailing list
> >> R-sig-ecology at r-project.org
> >> https://stat.ethz.ch/mailman/listinfo/r-sig-ecology
> >>
> >
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-ecology mailing list
> R-sig-ecology at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-ecology

	[[alternative HTML version deleted]]



More information about the R-sig-ecology mailing list