【问题标题】:Line graph with week of year for different years不同年份一年中一周的折线图
【发布时间】:2023-03-12 15:06:01
【问题描述】:

我正在尝试在 x 轴上创建一个具有同一周期间的单个图表,假设在 y 轴上是销售额,但不同的年份覆盖有不同的颜色。

我有一个面板数据集,其中包含 2019 年 1 月 1 日至 2020 年 12 月 31 日的数据。

所以,我希望 x 轴从第 1 周开始,到第 52 周(总共 52 周)结束,没有年份信息。

我将如何使用 Stata 做这件事?

到目前为止我已经尝试过

tw line y date if date < tw(2020w1)  || line y date if date >= tw(2020w1) 

但此代码将生成从 2019 年第 1 周到 2020 年第 52 周(总共 104 周)的 x 轴,并且不会在轴所在的同一周覆盖不同年份。

【问题讨论】:

  • 您可以创建一个取值在 1 到 52(周)之间的变量,而不考虑年份,然后将 twoway 中的变量 date 替换为 this week 变量。如果您需要进一步的帮助,请向我们展示一个可重现的示例,其中包含您的日期变量的数据格式。
  • @krasnapolsky 谢谢!我将尝试生成您提到的假人,如果失败,我将尝试使用 dataex 复制数据
  • 不是傻瓜,用整数 1,2,3 ... 50,51,52 创建一个名为 week 的变量。然后你可以使用tw line sale week if year == 2019 || line sale week if year == 2020。我建议创建一个带有年份的变量year,因为代码if year == 2020if date &gt;= tw(2020w1) 更易于阅读。
  • @TheIceBear 使用以下代码我能够创建整数 1,2,3... 52 egen week = seq(), to(52) 并且我按照你的 tw line 命令的说明最后问题解决了!谢谢大家的建议!

标签: graph stata


【解决方案1】:

以下创建的整数是从 1 到 52:

 egen week = seq(), to(52) 

然后

 tw line sale week if year == 2019 || line sale week if year == 2020 

【讨论】:

    【解决方案2】:

    Stata 周从 1 月 1 日、1 月 8 日、1 月 15 日开始,......总是,第 52 周总是 8 或 9 天,而不是第 53 周。如果这与你所拥有的 1:1 映射,那么好吧不错。

    否则,请参阅 search week, sj 提供的参考以获取其他建议。

    week(dofw()) 上方的附带条件将一年中的一周从每周日期中拉出,因此如果参数是 Stata 每周日期,则产生 1 到 52。因此,您不需要发明自己的周数变量。该信息必须嵌入您似乎拥有的 Stata 每周日期中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 2017-06-21
      • 1970-01-01
      • 2019-11-11
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多