【问题标题】:r: create custom "week" functionr:创建自定义“星期”功能
【发布时间】:2018-11-20 22:36:01
【问题描述】:

我正在编写一个函数,它将获取我的 df$date 字段(每天 POSIXct 日期(按天)并创建一个名为 df$wbm 的新变量(wbm = 从星期一开始的星期)。我知道数学有效,因为我已经在 Excel 中完成了此操作,但语法不起作用,请参见下文:

df$wbm<- if (weekdays(df$date) == "Sunday") {
  df$date - days(6)
} else { df$date + (days(2) - df$date)
  }

【问题讨论】:

标签: r tidyverse lubridate


【解决方案1】:

%w 可能是您正在寻找的 format 参数:星期天是 0 的星期几

> x <- as.POSIXct('2018-11-20 12:12:12')
> format(x, "%w")
[1] "2"

【讨论】:

    【解决方案2】:

    浏览了几个链接,我发现这里的最后一个答案是最有帮助的:How to find Previous Sunday in R

    这是我想出的,使用lubridate

    > df$wbm<- lubridate::floor_date(df$date, "week") + days(1)
    > weekdays(df$wbm)[1]
    [1] "Monday"
    

    【讨论】:

      猜你喜欢
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 2017-11-10
      相关资源
      最近更新 更多