[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