【问题标题】:R: summing up daily data into weekly dataR:将每日数据汇总为每周数据
【发布时间】:2015-03-06 17:14:43
【问题描述】:

我有一个大的股票数据数据文件。

我已经按股票代码和数据组织了它:

Ticker   Date        Vol.
A        20050501     23
A        20050502     45
AB       20050501    100
AV       20050503    100
BC       20050501     50

如何在保持相同的字母和日期格式的同时将数据分组和汇总为每周数据?例如,将 23 和 45 相加并输入如下条目:

A    20050501  68
AB   20050501  100

我想列出 A 的所有每周交易量总和,然后是 AB 的所有每周总和,等等。

谢谢。

【问题讨论】:

    标签: r


    【解决方案1】:

    这是使用lubridatedplyr 的解决方案:

    require(lubridate)
    require(dplyr)
    set.seed(1)
    Ticker<-rep(c("a","b","c"),6)
    Vol.<-rnorm(18,100,100)
    Date<-c("20050501","20050502","20050503","20050504","20050505","20050506","20050507","20050508","20050509",
             "20050510","20050511","20050512","20050513","20050514","20050515","20050516","20050517","20050518")
    dat<-data.frame(Ticker,Date,Vol.)
    dat$Date<-ymd(dat$Date)
    dat$Week<-week(dat$Date)
    dat_summary<-dat%>%
      group_by(Week,Ticker)%>%
      summarize(sumweek=sum(Vol.))
    
    dat_summary
    #Source: local data frame [9 x 3]
    #Groups: Week
    
    #  Week Ticker   sumweek
    #1   18      a 296.88270
    #2   18      b 251.31511
    #3   18      c  16.43714
    #4   19      a 218.20407
    #5   19      b 425.01059
    #6   19      c 314.51562
    #7   20      a 133.38258
    #8   20      b -23.08902
    #9   20      c 406.87671
    

    如果您的数据超过一年,那么您需要创建一个“年列”dat$Year&lt;-year(dat$Date),然后按“周和年”分组group_by(Week,Year,Ticker)

    【讨论】:

    • 我希望仍然保持按股票代码分组的数据,并汇总该股票代码的个人每周数据。所以我想总结一下我对股票代码 A 的每周的数据,并在连续的行中列出每周的所有数据。然后每周总结下一个股票和下一个股票。
    • 已编辑,您只需 group_by(Week,Ticker),如果您有超过一年的时间,请记得添加一个年份列,因此它是 group_by(Week,Ticker,Year)
    • 好的,我试试看。
    • 我让它开始工作,但我的一周只到星期四。如何切换我的一周以使其在周日至周六而不是周五至周四运行?感谢您的帮助。
    • 您可以使用difftime 函数查找从任意起点到相关日期的周数。其中first_sunday 是示例中第一个星期日的日期,您可以创建一个列dat$diffweek&lt;-floor(difftime(dat$Date,first_sunday,units="weeks"))
    猜你喜欢
    • 1970-01-01
    • 2021-08-23
    • 2011-07-09
    • 2021-04-02
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 2020-07-15
    相关资源
    最近更新 更多