如何根据日期筛选数据?

huangapple go评论113阅读模式
英文:

How can I filter data based on date?

问题

我已经使用R中的“tidyquant”包下载了股票价格数据。该公司的财政年度每年截止于3月31日。因此,我想筛选出所有可用年份的数据,仅保留3月31日的数据。数据可用于2013年1月1日至2023年2月1日。在这些日期中,我只想保留以下日期的数据:

  • 2013年3月31日;
  • 2014年3月31日;
  • 2015年3月31日;
  • 2016年3月31日;
  • 2017年3月31日;
  • 2018年3月31日;
  • 2019年3月31日;
  • 2020年3月31日;
  • 2021年3月31日;
  • 2022年3月31日。

如何应用这样的筛选?

英文:

I have downloaded stock price data using tidyquant package in R. This company's financial year ends on 31st March every year. So, I want to filter data only for 31st March for all the available years. The data is available from 1-Jan-2013 to 1-Feb-2023. Out of them, I want to keep only the datapoints, where the dates are as follows:

31-Mar-2013;
31-Mar-2014;
31-Mar-2015;
31-Mar-2016;
31-Mar-2017;
31-Mar-2018;
31-Mar-2019;
31-Mar-2020;
31-Mar-2021;
31-Mar-2022

How can I apply such filter?

答案1

得分: 0

library(lubridate)
your_data_frame$DATE_COLUMN <- dmy(your_data_frame$DATE_COLUMN)
dplyr::filter(your_data_frame, month(DATE_COLUMN) == 3, day(DATE_COLUMN == 31))

考虑到3月31日有时会落在周末,也许更有意义的是提取3月的最后一天。

your_data_frame %>%
  filter(month(DATE_COLUMN) == 3) %>%
  group_by(year = year(DATE_COLUMN)) %>%
  slice_max(DATE_COLUMN) %>%
  ungroup()
英文:
library(lubridate)
your_data_frame$DATE_COLUMN &lt;- dmy(your_data_frame$DATE_COLUMN)
dplyr::filter(your_data_frame, month(DATE_COLUMN) == 3, day(DATE_COLUMN == 31)

Given that March 31 will sometimes fall on a weekend, it might make sense to pull the last day of March instead.

your_data_frame %&gt;%
  filter(month(DATE_COLUMN) == 3) %&gt;%
  group_by(year = year(DATE_COLUMN)) %&gt;%
  slice_max(DATE_COLUMN) %&gt;%
  ungroup()

huangapple
  • 本文由 发表于 2023年2月8日 08:29:20
  • 转载请务必保留本文链接:https://go.coder-hub.com/75380327.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定