[R] Returning combine output from R loop
Abdul Rahman bin Kassim (Dr.)
rahmank at frim.gov.my
Fri May 31 10:43:33 CEST 2013
Dear Mr. Nello,
Thank you very much for your prompt reply and solution to my question. I have tried the three options. Need to spend more to understand do.cal function.
With best regards,
Abd Rahman
________________________________________
From: Blaser Nello [nblaser at ispm.unibe.ch]
Sent: Friday, May 31, 2013 4:12 PM
To: Abdul Rahman bin Kassim (Dr.); r-help at r-project.org
Subject: RE: [R] Returning combine output from R loop
In line with what you are doing now, but saving the intermediate results
you could use something like this.
a3 <- a0
for( i in 1:3)
{
a1 <- a0$initial_size+a0$grow
a2<- cbind(sp=a0$sp,initial_size=a1+i,yr=i)
a3 <- cbind(a3, a2)
}
a3
However, I would suggest one of the following solutions instead. Which
one is best depends on what you want to do with the data after.
res1 <- do.call(cbind,c(a0,lapply(1:maxYears, function(k){
data.frame(yr=k, size=a0$initial_size+k*a0$grow)
})))
res2 <- do.call(cbind,c(a0,lapply(1:maxYears, function(k){
ans <- data.frame(a0$initial_size+k*a0$grow)
names(ans) <- paste0("size.", k)
ans
})))
res3 <- do.call(rbind,lapply(1:maxYears, function(k){
cbind(id=1:nrow(a0), sp=a0$sp, yr=k, size=a0$initial_size+k*a0$grow)
}))
res3 <- res3[order(res3[,"id"], res3[,"yr"]),]
Best,
Nello
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On Behalf Of Abdul Rahman bin Kassim (Dr.)
Sent: Freitag, 31. Mai 2013 08:37
To: r-help at r-project.org
Subject: [R] Returning combine output from R loop
Dear R-User,
Appreciate any advice on producing combine output from an R loop.
Planning to project the growth (grow) of plant species (sp) from its
initia size (initial_size). Using the follwing example, how can I
produce the results combining the output from 3 iteration. The ouput a2
produce only the last iteration.
Thanks in advanced for your advice.
---------
a0 <- data.frame(initial_size=sample(30,10),sp=gl(2,5,10),
grow=as.numeric(as.character(gl(2,5,10)))*0.5)
a2<-c(0)
for( i in 1:3)
{
a1 <- a0$initial_size+a0$grow
a2<- cbind(sp=a0$sp,initial_size=a1+i,yr=i)
a2}
a2
---------
Abd Rahman
Dr. Abd Rahman Kassim
Program Kualiti Air
Bahagian Perhutanan & Alam Sekitar
Institut Penyelidikan Perhutanan Malaysia Kepong 52109 Selangor
Fax:03-62729852
Tel: 013-3380905/03-62797179
Email: rahmank at frim.gov.my
________________________________
For E-Mail Disclaimer, please click
here<http://www.frim.gov.my/v1/support/general/email_disclaimer.cfm>
[[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
________________________________
For E-Mail Disclaimer, please click here<http://www.frim.gov.my/v1/support/general/email_disclaimer.cfm>
More information about the R-help
mailing list