【问题标题】:Is there an R function to add weekending Sunday by a given date是否有一个 R 函数可以在给定日期添加周末星期天
【发布时间】:2021-04-11 23:28:41
【问题描述】:

我想在 R 中将一个周末的星期天变异为一个数据集。例如

这是我目前所拥有的:

x <- seq(Sys.Date(), by = "1 day", length.out = 21)
data.frame(
  x = x,
  weekday = weekdays(x),
  next_friday = ceiling_date(x, "week") + 
    ifelse(weekdays(x) %in% c("Saturday", "Sunday"), -7,0)
)

【问题讨论】:

    标签: r tidyverse lubridate


    【解决方案1】:

    也许更简单:

    x + (7-as.integer(format(x, "%u")))
    #  [1] "2021-04-11" "2021-04-18" "2021-04-18" "2021-04-18" "2021-04-18" "2021-04-18" "2021-04-18"
    #  [8] "2021-04-18" "2021-04-25" "2021-04-25" "2021-04-25" "2021-04-25" "2021-04-25" "2021-04-25"
    # [15] "2021-04-25" "2021-05-02" "2021-05-02" "2021-05-02" "2021-05-02" "2021-05-02" "2021-05-02"
    

    更大:

    dat <- data.frame(
      x = x,
      weekday = weekdays(x),
      next_sunday_date = x + (7-as.integer(format(x, "%u")))
    )
    transform(dat, next_sunday_weekday = weekdays(next_sunday_date))
    #             x   weekday next_sunday_date next_sunday_weekday
    # 1  2021-04-11    Sunday       2021-04-11              Sunday
    # 2  2021-04-12    Monday       2021-04-18              Sunday
    # 3  2021-04-13   Tuesday       2021-04-18              Sunday
    # 4  2021-04-14 Wednesday       2021-04-18              Sunday
    # 5  2021-04-15  Thursday       2021-04-18              Sunday
    # 6  2021-04-16    Friday       2021-04-18              Sunday
    # 7  2021-04-17  Saturday       2021-04-18              Sunday
    # 8  2021-04-18    Sunday       2021-04-18              Sunday
    # 9  2021-04-19    Monday       2021-04-25              Sunday
    # 10 2021-04-20   Tuesday       2021-04-25              Sunday
    # 11 2021-04-21 Wednesday       2021-04-25              Sunday
    # 12 2021-04-22  Thursday       2021-04-25              Sunday
    # 13 2021-04-23    Friday       2021-04-25              Sunday
    # 14 2021-04-24  Saturday       2021-04-25              Sunday
    # 15 2021-04-25    Sunday       2021-04-25              Sunday
    # 16 2021-04-26    Monday       2021-05-02              Sunday
    # 17 2021-04-27   Tuesday       2021-05-02              Sunday
    # 18 2021-04-28 Wednesday       2021-05-02              Sunday
    # 19 2021-04-29  Thursday       2021-05-02              Sunday
    # 20 2021-04-30    Friday       2021-05-02              Sunday
    # 21 2021-05-01  Saturday       2021-05-02              Sunday
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2020-12-03
      • 2011-03-27
      • 1970-01-01
      相关资源
      最近更新 更多