Hello,

And here is another way, with aggregate.

Make up test data.

set.seed(2020)
df1 <- expand.grid(Year = 2000:2018, Month = 1:12)
df1 <- df1[order(df1$Year),]
df1$Value <- sample(20:30, nrow(df1), TRUE)
head(df1)


#Use subset to keep only the relevant months
aggregate(Value ~ Year, data = subset(df1, Month <= 7), FUN = mean)


Hope this helps,

Rui Barradas

Às 12:33 de 03/08/2020, Rasmus Liland escreveu:
On 2020-08-03 21:11 +1000, Jim Lemon wrote:
On Mon, Aug 3, 2020 at 8:52 PM Md. Moyazzem Hossain <hossai...@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

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


--
Este e-mail foi verificado em termos de vírus pelo software antivírus Avast.
https://www.avast.com/antivirus

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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