On 2020-08-03 21:11 +1000, Jim Lemon wrote:
On Mon, Aug 3, 2020 at 8:52 PM Md. Moyazzem Hossain <hossainmm at juniv.edu> wrote:
Hi,
I have a dataset having monthly
observations (from January to
December) over a period of time like
(2000 to 2018). Now, I am trying to
take an average the value from
January to July of each year.
The data looks like
Year Month Value
2000 1 25
2000 2 28
2000 3 22
.... ...... .....
2000 12 26
2001 1 27
....... ........
2018 11 30
20118 12 29
Can someone help me in this regard?
Many thanks in advance.
Hi Md,
One way is to form a subset of your
data, then calculate the means by
year:
# assume your data is named mddat
mddat2<-mddat[mddat$month < 7,]
jan2jun<-by(mddat2$value,mddat2$year,mean)
Jim
Hi Md,
you can also define the period in a new
column, and use aggregate like this:
Md <- structure(list(
Year = c(2000L, 2000L, 2000L,
2000L, 2001L, 2018L, 2018L),
Month = c(1L, 2L, 3L, 12L, 1L,
11L, 12L),
Value = c(25L, 28L, 22L, 26L,
27L, 30L, 29L)),
class = "data.frame",
row.names = c(NA, -7L))
Md[Md$Month %in%
1:6,"Period"] <- "first six months of the year"
Md[Md$Month %in% 7:12,"Period"] <- "last six months of the year"
aggregate(
formula=Value~Year+Period,
data=Md,
FUN=mean)
Rasmus