[R] Arrange data

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Tue Aug 4 00:28:27 CEST 2020


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 <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
>
> ______________________________________________
> R-help using 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



More information about the R-help mailing list