【问题标题】:Calculating Summary Statistics by Day/Week/Month按天/周/月计算汇总统计
【发布时间】:2010-08-09 11:22:40
【问题描述】:

在 R 中,我有一个全天记录的各种统计数据的数据框。 (例如,心率)。每个测量条目的时间戳是自动创建的,我已经将它们转换为 POSIXt 类元素。

观察次数每天都在变化。

我想知道如何按天/周/月计算汇总统计数据。

【问题讨论】:

    标签: datetime r


    【解决方案1】:

    使用tapplyformat

    例如。

    > tst<-data.frame(date=as.POSIXct(runif(1000)*31557600,origin="2010/8/9"),value=runif(1000))
    
    > tapply(tst$value,format(tst$date,"%a"),summary)
    $Fri
        Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
    0.001545 0.238900 0.499600 0.484700 0.697000 0.996400 
    
    $Mon
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    0.02029 0.25100 0.49100 0.49910 0.75530 0.99120 
    
    $Sat
        Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
    0.003557 0.245600 0.493600 0.499200 0.754600 0.996200 
    
    $Sun
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    0.01867 0.22340 0.52750 0.51260 0.80500 0.97760 
    
    $Thu
        Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
    0.003691 0.281200 0.600600 0.546800 0.790800 0.973000 
    
    $Tue
        Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
    0.009304 0.253400 0.488900 0.510300 0.772200 0.997100 
    
    $Wed
        Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
    0.002854 0.236200 0.400600 0.473500 0.742900 0.988600
    

    您可以将format 中的%a 替换为适合的其他代码,请参阅?strptime。月份是%b,周数是%U

    【讨论】:

    • 没问题。对于更高级的细分,plyr 包的ddply 函数很有用。
    • 很好 - 我喜欢你重新格式化日期以获得必要的分组变量的方法。
    【解决方案2】:

    您可以尝试这样的方法来按月获取数据框第二列的汇总统计信息

    library(plyr)
    library(fBasics)
    dlply(my_dataframe,.(format(date_Column, "%m %y")),function(x) basicStats(x[2])) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      相关资源
      最近更新 更多