【问题标题】:Performing functions by week按周执行功能
【发布时间】:2022-11-26 02:09:46
【问题描述】:

我试图在 R 中按周查找总收入、毛利、利润、销售额和库存。我相信最简单的方法是为每个日期分配一个周数,这样我就可以按周数分组或过滤。然而,有很多年,我只能弄清楚如何做到这一点,所以它会在明年年初的第 1 周重置。有办法解决这个问题吗?我是否也应该为每次购买添加一个年份列?

WeeklyVariableData$New$WeekNum <- strftime(WeeklyVariableData$New$'Contract Date', format = "%V")
WeeklyVariableData$Used$WeekNum <- strftime(WeeklyVariableData$Used$'Contract Date', format = "%V")

WeeklyVariableData$New$Year <- strftime(WeeklyVariableData$New$'Contract Date', format = "%Y")
WeeklyVariableData$Used$Year <- strftime(WeeklyVariableData$Used$'Contract Date', format = "%Y")

【问题讨论】:

  • 如果您包含一个简单的 reproducible example 以及可用于测试和验证可能的解决方案的示例输入和所需的输出,则可以更轻松地为您提供帮助。
  • 我不明白你的意思“它在明年年初的第 1 周重置”.正如 MrFlick 所建议的那样,请 edit 您要添加的问题:示例数据、您当前用于尝试按周汇总的代码,以及为什么它不正确。由于“年”在聚合中似乎是一个挑战,请确保您的示例数据包含此极端情况。
  • 我想弄清楚是否有一种方法可以在不共享个人标识符的情况下共享一些数据。重置的意思是,由于一年只有52-53周,所以在下一年的年初,下一年的周数再次为1,而不是继续计数。
  • NCTotRev &lt;- WeeklyVariableData$New %&gt;% group_by(WeekNum, Year) %&gt;% summarize(NCTotRev = sum('Sold Price')) dput(NCTotRev[1:10, ]) dput(WeeklyVariableData$WeeklyData[1:10, 0])

标签: r time-series aggregate


【解决方案1】:

WeeklyVariableData$New$WeekYear &lt;- strftime(WeeklyVariableData$New$'Contract Date', format = "%V/%Y") WeeklyVariableData$Used$WeekYear&lt;- strftime(WeeklyVariableData$Used$'Contract Date', format = "%V/%Y")

这会将日期格式化为包括星期和年份。虽然明年年初不再继续统计,但它使事情变得容易得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2020-09-16
    相关资源
    最近更新 更多