【问题标题】:Compute monthly averages from daily data根据每日数据计算每月平均值
【发布时间】:2013-05-20 14:51:57
【问题描述】:

我有这个数据框“df1”作为示例,它实际上是一个更大的数据框(15 年)的一部分:

             X1          X2
3798 2009-12-29           0
3799 2009-12-30           0
3800 2009-12-31           0 
3802 2010-01-02           0
3803 2010-01-03         2.1
3804 2010-01-04           0
3805 2010-01-05           0
3806 2010-01-06           0
3807 2010-01-07           0
3808 2010-01-08           0
3809 2010-01-09           0
3810 2010-01-10         6.8
3811 2010-01-12           0
3812 2010-01-13           0
3813 2010-01-14        17.7
3814 2010-01-16           0
3815 2010-01-17           0
3816 2010-01-18         1.5
3817 2010-01-19           0
3818 2010-01-20           0
3819 2010-01-21           0
3820 2010-01-22           0
3821 2010-01-23           0
3822 2010-01-24           0
3823 2010-01-25           0
3824 2010-01-26           0
3825 2010-01-27         4.5
3826 2010-01-28           0
3827 2010-01-29           0
3828 2010-01-31           0
3829 2010-02-01           0
3830 2010-02-03           0
3831 2010-02-04           0
3832 2010-02-05           0
3833 2010-02-07           0
3834 2010-02-08           0
3835 2010-02-09         1.2  

我想使用这个数据框创建一个新的“df2”,每月平均。有谁知道如何做到这一点?帮助会很棒!

【问题讨论】:

  • 您是否尝试过在 stackoverflow 或谷歌上搜索答案?这是一个很常见的问题。
  • 或者,在右侧的“相关”下查看。

标签: r average


【解决方案1】:

使用base R 的一种方法是确保您的日期属于Date 或类似(例如POSIXct)类(如果您还没有的话),然后提取月份和年份(因为您的数据跨越超过一年)并像这样汇总:

#  Convert to date if not already
df1$X1 <- as.Date(df1$X1)

#  Get months
df1$Month <- months(df1$X1)

#  Get years
df1$Year <- format(df1$X1,format="%y")

#  Aggregate 'X2' on months and year and get mean
aggregate( X2 ~ Month + Year , df1 , mean )
#    Month Year        X2
#1 December   09 0.0000000
#2 February   10 0.1714286
#3  January   10 1.2074074

如果您环顾四周,有很多方法可以做到这一点。

【讨论】:

  • 我想我应该更好地环顾四周。感谢您的帮助!
  • @MB123 有时很难找到正确的搜索词。不客气!
  • “X2”代表什么?尝试将此代码用于我的数据,我收到以下消息: eval 中的错误(predvars,data,env):找不到对象'X2',考虑到我没有定义 X2,这实际上是合乎逻辑的/跨度>
猜你喜欢
  • 2021-12-18
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
相关资源
最近更新 更多