Skip to content
Back to formatted view

Raw Message

Message-ID: <47EB7F12.2020208@bitwrit.com.au>
Date: 2008-03-27T11:03:46Z
From: Jim Lemon
Subject: Loop problem
In-Reply-To: <88493EDAE8A32D4EA88F17102879E3950756357B@moonraker.campus.ncl.ac.uk>

Oops, missed the first line of the example:

storm.data<-data.frame(meas.index=10001:20000,cumrain=runif(10000,-10,10)+10)

You can generalize the function to whatever column names you have like this:

find.max.rain<-function(raindata,howmany,raincol) {
  # a lazy way of getting the same structure as raindata
  # it assumes that raindata has the data structure that you want
  maxrain<-raindata[1:howmany,]
  for(i in 1:howmany) {
   raindim<-dim(raindata)
   thismax<-which.max(raindata[[raincol]])
   cat(thismax," ")
   maxrain[i,]<-raindata[thismax,]
   mindex<-thismax-48
   if(mindex < 1) mindex <- 1
   maxdex<-thismax+48
   cat(mindex,maxdex," ")
   if(maxdex > raindim[1]) maxdex<-raindim[1]
   raindata<-raindata[-(mindex:maxdex),]
   cat(raindim[1],"  ")
  }
  cat("\n")
  return(maxrain)
}

find.max.rain(storm.data,50,"cumrain")

Jim