【发布时间】:2013-02-27 00:55:07
【问题描述】:
我想知道是否有办法将每日数据平均为每周数据。我称之为 CADaily 的数据框如下所示:
> CADaily[1:10, ]
Climate_Division Date Rain
885 1 1948-07-01 0.8750000
892 1 1948-07-02 2.9166667
894 1 1948-07-03 0.7916667
895 1 1948-07-04 0.4305556
898 1 1948-07-05 0.8262061
901 1 1948-07-06 0.5972222
904 1 1948-07-17 0.04166667
905 1 1948-07-18 0.08333333
907 1 1948-07-20 0.04166667
909 1 1948-07-22 0.12500000
910 1 1948-07-21 NA
我的目标类似于聚合函数,根据日期(当然)和气候分区(范围从 1 到 7)将每日降雨的平均值转换为每周降雨值。我在网上搜索时发现了一个可以使用但与我的目标不太相符的代码:
apply.weekly(xts(CADaily[,-2], order.by= CADaily[,2]), FUN = mean)
这符合我的要求,但我的专栏 Climate_Division 也是平均的。我只想对 Rain 进行平均,然后根据 Climate_Division 和 Date 对其进行排序。有没有办法我可以这样做:
aggregate(CADaily, by =list(CADaily$Climate_Division, CADaily$Date), FUN = mean, na.rm = TRUE)
日期在哪里以某种形式的周?还是有别的办法?
编辑:
亲爱的,
感谢您的帮助。也许使用聚合并不是我最初认为的最好的方法。在输出方面,我想获得数据(1948 - 1995 年)所有年份的每周平均降雨量。换句话说,我想获得一种很好的格式,我可以将它输入到具有周末日期形式的时间序列中。我正在寻找的输出(请记住,可能存在 NA 值)是:
Climate_Division Date Rain
1 1948-07-03 1.527778
1 1948-07-10 0.6179946
1 1948-07-17 0.04166667
1 1948-07-24 0.08333333
...
1 1995-12-23 0.24513245
1 1995-12-30 0.12450545
或者有没有更好的方法来表达由日期表示的每周数据?
感谢您的帮助。
【问题讨论】: