【问题标题】:Get last day in quarter [duplicate]获取季度的最后一天[重复]
【发布时间】:2016-09-06 18:49:18
【问题描述】:

我有一个日期序列,每个日期都有一个值

dat = data.frame(date = seq(as.Date("2015/1/1"), as.Date("2016/8/1"), "days"), value =seq(1, length(seq(as.Date("2015/1/1"), as.Date("2016/8/1"), "days")),1 ))

我想对数据框进行子集化,并用一个值返回该季度的最后一天

所以对于上述日期,结果应该是

2015-03-31    90
2015-06-30   181
2015-09-30   273
2015-12-31   365
2016-03-31   456
2016-06-30   547
2016-08-01   579

【问题讨论】:

标签: r


【解决方案1】:

这只是一种方法

library(dplyr)
library(lubridate)
dat %>% 
  group_by(quarter=quarter(date, T)) %>% 
  filter(date==max(date)) %>% 
  ungroup %>% 
  select(-quarter)
# # A tibble: 7 x 2
#         date value
#       <date> <dbl>
# 1 2015-03-31    90
# 2 2015-06-30   181
# 3 2015-09-30   273
# 4 2015-12-31   365
# 5 2016-03-31   456
# 6 2016-06-30   547
# 7 2016-08-01   579

【讨论】:

  • 我收到此错误 Max(date) 中的错误:运行代码时参数的“类型”无效(闭包)
  • 我认为 dat %>% group_by(quarter=quarter(date, T)) %>% summarise(m = max(date)) 会起作用
  • 您在使用示例数据时遇到错误?
猜你喜欢
  • 2019-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多