[R] Putting R script in a function.

Frederic Ntirenganya ntfredo at gmail.com
Tue Oct 28 13:40:41 CET 2014


Hi All,

I wrote this script to calculate the water balance using the following
formula:
Water_Balance = Water_Balance yesterday + Rainfall - Evaporation.

The code works well and I want to put into a function.

conditions: Water_Balance<0 is equal to 0.
                 Water_Balance>100 is equal to 100.

Any idea on how I can make it us a function is welcome.


# Adding a new column for water balance to the data frame and evaporation
Samsmall$Water_Balance <- NA
Samsmall$Evaporation<-5
# initialization
Samsmall$Water_Balance[1]=0
# loop for calculating water balance for a given dataset
ndays <- nrow(Samsmall)
for (iday in 2:ndays) {
  Samsmall$Water_Balance[iday] <- Samsmall$Water_Balance[iday-1] +
Samsmall$Rain[iday] - Samsmall$Evaporation[iday]
  if (Samsmall$Water_Balance[iday]<0){
    Samsmall$Water_Balance[iday]=0
  }else if(Samsmall$Water_Balance[iday]>100){
    Samsmall$Water_Balance[iday]=100
  }
}
## Table of water balance for a specific year.
require(reshape2)
samsmall30<-subset(Samsmall,Year==1930)
attach(samsmall30)
#produce table with data
sam30<-dcast(samsmall30,Day~Month,value.var="Water_Balance")
#add column names as months
colnames(sam30)[2:13]<-month.abb[1:12]


Regards,
Frederic.

	[[alternative HTML version deleted]]



More information about the R-help mailing list