This should do the trick:

data$date <- as.Date(data$date, '%m/%d/%Y') 
data$month <- format(data$date, '%Y-%m')
by(data$rammday, data$month, sum)

Hope that helps,

Jason


-----Original Message-----
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
Behalf Of Stephan Kolassa
Sent: Wednesday, March 31, 2010 2:31 PM
To: Steve Murray
Cc: r-help@r-project.org
Subject: Re: [R] Summing data based on certain conditions

?by may also be helpful.

Stephan


Steve Murray schrieb:
> Dear all,
> 
> I have a dataset of 1073 rows, the first 15 which look as follows:
> 
>> data[1:15,]
>         date year month day rammday thmmday
> 1   3/8/1988 1988     3   8    1.43    0.94
> 2  3/15/1988 1988     3  15    2.86    0.66
> 3  3/22/1988 1988     3  22    5.06    3.43
> 4  3/29/1988 1988     3  29   18.76   10.93
> 5   4/5/1988 1988     4   5    4.49    2.70
> 6  4/12/1988 1988     4  12    8.57    4.59
> 7  4/16/1988 1988     4  16   31.18   22.18
> 8  4/19/1988 1988     4  19   19.67   12.33
> 9  4/26/1988 1988     4  26    3.14    1.79
> 10  5/3/1988 1988     5   3   11.51    6.33
> 11 5/10/1988 1988     5  10    5.64    2.89
> 12 5/17/1988 1988     5  17   37.46   20.89
> 13 5/24/1988 1988     5  24    9.86    9.81
> 14 5/31/1988 1988     5  31   13.00    8.63
> 15  6/7/1988 1988     6   7    0.43    0.00
> 
> 
> I am looking for a way by which I can create monthly totals of rammday 
> (rainfall in mm/day; column 5) by doing the following:
> 
> For each case where the month value and the year are the same (e.g. 3 and 
> 1988, in the first four rows), find the mean of the the corresponding rammday 
> values and then times by the number of days in that month (i.e. 31 in this 
> case).
> 
> Note however that the number of month values in each case isn't always the 
> same (e.g. in this subset of data, there are 4 values for month 3, 5 for 
> month 4 and 5 for month 5). Also the months will of course recycle for the 
> following years, so it's not simply a case of finding a monthly total for 
> *all* the 3s in the whole dataset, just those associated with each year in 
> turn.
> 
> How would I go about doing this in R?
> 
> Any help will be gratefully received.
> 
> Many thanks,
> 
> Steve
> 
> 
>                                         
> _________________________________________________________________
> We want to hear all your funny, exciting and crazy Hotmail stories. 
> Tell us now
> 
> ______________________________________________
> R-help@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.
>

______________________________________________
R-help@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.

______________________________________________
R-help@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.

Reply via email to