r - R中每月的第二个到最后一个星期三
问题描述
在 R 中,如何生成指定日期范围内所有第二个到最后一个星期三的日期列表?我尝试了一些事情,但在五个星期三的几个月里得到了不一致的结果。
解决方案
要生成规则的日期序列,您可以将seq
日期用于参数from
和to
。有关更多选项,请参阅seq.Date 文档。
创建一个包含日期、月份和工作日的数据框。然后在 的帮助下获取每个月的倒数第二个星期三aggregate
。
day_sequence = seq(as.Date("2020/1/1"), as.Date("2020/12/31"), "day")
df = data.frame(day = day_sequence,
month = months(day_sequence),
weekday = weekdays(day_sequence))
#Filter only wednesdays
df = df[df$weekday == "Wednesday",]
result = aggregate(day ~ month, df, function(x){head(tail(x,2),1)})
tail(x,2)
将返回最后两行,然后head(.., 1)
会给你最后两行中的第一行。
结果:
month day
1 April 2020-04-22
2 August 2020-08-19
3 December 2020-12-23
4 February 2020-02-19
5 January 2020-01-22
6 July 2020-07-22
7 June 2020-06-17
8 March 2020-03-18
9 May 2020-05-20
10 November 2020-11-18
11 October 2020-10-21
12 September 2020-09-23
推荐阅读
- javascript - 如何通过输入值的变化来改变jquery ui滑块?
- sql - 如何选择每个月的最新记录?
- mathematical-optimization - 优化的输出(使用 GEKKO)为操纵变量(IMODE=6)给出零
- apache-kafka - 使用 apache kafka 请求回复模式实现
- asp.net - 从直播 URL 播放音频
- amazon-web-services - Unix 中的文件观察程序脚本
- php - 如何更改 Woocommerce 价格?
- angular - 使用包含来自端点的数组的可观察对象来查询其他端点并组合成单个可观察对象
- flutter - WidgetsBinding.instance.addPostFrameCallback 不再起作用
- regex - 查找以特定单词开头的最长行