[R] Coversion from yearly to weekly data
PIKAL Petr
petr.pikal at precheza.cz
Fri Mar 8 16:44:00 CET 2013
Hi
some brute force
aggregate(test$Value, list(rep(1:61, each=7)[1:422]), mean)
or
aggregate(test$Value, list(findInterval(1:nrow(test), seq(1,422,by=7)), test$Data), mean)
gives you aggregated values for each week.
or
lll <- split(test, test$Data)
lapply(lll, function(x) aggregate(x, list(findInterval(1:nrow(x), seq(1,422,by=7))), mean))
if you want to separate SOIL and Air
However I am not sure how do you want those values to be organised.
Anyway, better approach is to change your Day to date variable by e.g. as.Date. The tricky way is to put correct month in
paste(month.vector, test$Day, 2012, sep=".")
Regards
Petr
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Nico Met
> Sent: Friday, March 08, 2013 4:16 PM
> To: R help
> Subject: [R] Coversion from yearly to weekly data
>
> Dear all, I have a big data matrix and I want to convert those data
> into weekly basis which means 7 days needs to be avaraged and aggregate
> a single value
>
> > dput(test)
> structure(list(locid = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L),
> .Label = "EC", class = "factor"),
> Day = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
> 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
> 31, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
> 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1, 2,
> 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
> 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1, 2,
> 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
> 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1, 2, 3,
> 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
> 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1, 2, 3,
> 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
> 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5,
> 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
> 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1, 2, 3, 4, 5, 6,
> 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
> 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1, 2, 3, 4, 5, 6,
> 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
> 22, 23, 24, 25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6, 7,
> 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
> 23, 24, 25, 26, 27, 28, 29, 30, 31, 1, 2, 3, 4, 5, 6, 7,
> 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
> 23, 24, 25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6, 7, 8, 9,
> 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
> 25, 26, 27, 28, 29, 30, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
> 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
> 29, 30, 31, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
> 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29
> ), Data = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Air", "SOIL"
> ), class = "factor"), Value = c(53.06, 55.04, 55.94, 53.06,
> 51.08, 50, 51.08, 53.96, 48.02, 48.02, 50, 53.06, 51.98,
> 55.94, 51.98, 57.02, 55.04, 55.04, 59, 57.92, 53.96, 46.94,
> 39.92, 42.08, 46.94, 50, 60.08, 55.04, 51.98, 46.04, 53.06,
> 48.02, 51.98, 50, 55.94, 51.98, 55.04, 53.06, 59, 62.96,
> 64.04, 64.94, 66.92, 69.08, 59, 57.92, 60.98, 66.02, 64.94,
> 64.94, 55.04, 59, 53.06, 57.02, 51.08, 57.02, 59, 62.96,
> 66.92, 69.98, 71.06, 59, 62.96, 64.04, 69.08, 64.94, 62.06,
> 69.08, 69.08, 73.94, 71.96, 69.08, 69.08, 69.98, 60.98, 59,
> 62.06, 71.06, 73.94, 71.06, 66.02, 66.02, 77, 75.92, 75.92,
> 75.02, 66.92, 62.06, 66.92, 60.98, 64.04, 64.94, 69.98, 71.96,
> 75.92, 69.08, 69.98, 66.92, 68, 66.02, 69.98, 75.92, 86,
> 87.98, 87.98, 69.98, 66.92, 75.92, 80.96, 78.08, 71.96, 62.06,
> 64.04, 66.92, 64.94, 71.06, 82.04, 89.06, 91.94, 89.06, 71.96,
> 69.08, 77, 77, 82.04, 75.02, 84.92, 84.92, 78.98, 80.96,
> 82.04, 86, 80.06, 80.06, 89.96, 91.94, 98.96, 102.02, 104,
> 100.04, 95, 89.06, 80.06, 78.98, 78.08, 64.94, 75.92, 71.96,
> 75.92, 73.94, 75.02, 82.04, 78.98, 80.96, 84.02, 82.94, 80.96,
> 86, 84.02, 87.08, 93.02, 98.06, 86, 89.06, 93.92, 98.96,
> 89.96, 89.96, 86, 96.08, 96.08, 98.06, 102.92, 105.08, 93.02,
> 87.08, 91.94, 87.08, 87.98, 93.92, 91.04, 91.04, 89.96, 89.06,
> 91.94, 93.02, 84.92, 93.92, 98.96, 105.08, 107.06, 109.04,
> 100.04, 93.02, 91.94, 96.08, 93.02, 89.06, 91.94, 91.94,
> 96.08, 93.92, 82.04, 80.96, 91.94, 95, 96.08, 96.08, 102.02,
> 89.06, 87.98, 91.94, 91.94, 91.94, 93.02, 98.96, 89.06, 91.94,
> 93.02, 96.08, 93.02, 87.08, 89.96, 96.08, 98.96, 98.96, 105.08,
> 107.06, 107.96, 95, 86, 84.92, 84.92, 91.94, 93.02, 96.98,
> 95, 96.98, 96.98, 95, 102.92, 105.08, 105.98, 96.98, 86,
> 87.98, 93.92, 100.04, 102.92, 104, 102.92, 100.04, 93.02,
> 82.04, 91.94, 93.92, 87.98, 91.04, 93.92, 93.92, 89.06, 80.06,
> 80.96, 80.96, 80.96, 82.94, 87.98, 91.94, 93.02, 93.02, 95,
> 96.98, 98.96, 91.94, 91.94, 93.02, 80.06, 73.04, 75.92, 77,
> 82.94, 87.98, 86, 73.94, 66.92, 68, 71.96, 82.04, 80.96,
> 84.02, 86, 87.08, 86, 80.06, 78.08, 80.96, 84.02, 86, 86,
> 84.92, 84.92, 80.06, 84.02, 80.96, 68, 69.98, 60.08, 66.02,
> 60.98, 62.06, 59, 66.92, 69.98, 64.04, 66.02, 62.96, 62.06,
> 68, 75.92, 78.98, 75.92, 75.02, 75.02, 73.94, 69.08, 69.98,
> 68, 60.98, 64.04, 68, 62.96, 55.04, 64.94, 59, 62.06, 64.94,
> 55.04, 53.06, 55.04, 53.96, 55.94, 48.92, 44.96, 46.94, 53.06,
> 62.96, 59, 62.06, 55.94, 44.96, 51.08, 41, 50, 48.02, 53.96,
> 51.08, 46.94, 53.06, 48.92, 48.92, 51.98, 50, 51.08, 55.04,
> 60.98, 37.94, 48.02, 33.98, 41, 39.02, 41, 39.92, 44.96,
> 46.94, 44.96, 35.06, 35.06, 39.02, 39.02, 33.98, 33.08, 39.02,
> 33.08, 39.02, 37.94, 37.94, 39.92, 42.98, 44.96, 37.94, 33.98,
> 33.98, 39.92, 33.98, 33.98, 39.02, 39.92, 35.06, 37.04, 35.06,
> 37.04, 35.06, 37.94, 39.02, 39.02, 42.98, 39.02, 41, 35.06,
> 35.06, 37.94, 39.92, 46.94, 42.98, 44.96, 37.04, 46.04, 42.08,
> 39.92, 41, 42.08, 42.08)), .Names = c("locid", "Day", "Data",
> "Value"), class = "data.frame", row.names = c(NA, 422L)) And I want the
> output as following:
>
> Air week 1 Air week 2 SOIL week 1 SOIL week 2 EC 52,751429
> 51,568571
> 39,992 41,1285714
>
>
>
> Many thanks in advance!!!
>
> Nico
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list