[R] Arrange data
Rasmus Liland
jr@| @end|ng |rom po@teo@no
Mon Aug 3 13:33:37 CEST 2020
On 2020-08-03 21:11 +1000, Jim Lemon wrote:
> On Mon, Aug 3, 2020 at 8:52 PM Md. Moyazzem Hossain <hossainmm using 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
More information about the R-help
mailing list