我的数据框如下所示:
str(Rainfall_Complete)
'data.frame': 8221 obs. of 18 variables:
$ Date : Date, format: "1985-04-29" "1985-04-30" "1985-05-01" ...
$ Month : Ord.factor w/ 12 levels "Jan"<"Feb"<"Mar"<..:
$ Season : Factor w/ 4 levels "Monsoon","PostMonsoon",..:.
$ Year : chr "1985" "1985" "1985" "1985" ...
$ Stn A : num 0 8.8 0 15 26.2 0 2.5 0 0 0 ...
$ Stn B : num 0 0 26 11 13.8 20 0.26 0 0 0 ...
$ Stn C : num 0.1 0 0 0 13.5 27 16 5 0 0 …
我想将上述每日时间序列转换为每月时间序列 我希望我的数据看起来像这样
Year Month StnA StnB StnC……..
1985 Jan 150 100 120
1985 Feb 120 98 58
….
2010 Jan 200 100 87
2010 Feb 140 145 120
我尝试了以下方法,但是它仅适用于单变量系列
library(dplyr)
Monthly_rainfall <- Rainfall_Complete %>% group_by(Year,Month)%>% summarise()
任何帮助将不胜感激
答案 0 :(得分:0)
您的尝试使用dplyr
,但是问题被标记为xts
和lubridate
,因此这是使用带有reprex的软件包的解决方案。
library(lubridate)
library(xts)
## Create some basic data
ans6 <- xts(anscombe[, 1:6], order.by = as.Date("2018-01-28") + 1:nrow(anscombe))
## Summary by month
mon6 <- apply.monthly(ans6, FUN = mean)
## Re-format
df6 <- as.data.frame(mon6)
df6$year <- year(rownames(df6))
df6$month <- month(rownames(df6), label = TRUE)
df6
## x1 x2 x3 x4 y1 y2 year month
## 2018-01-31 10.33333 10.33333 10.33333 8.000 7.523333 8.673333 2018 Jan
## 2018-02-08 8.50000 8.50000 8.50000 9.375 7.492500 7.061250 2018 Feb