【问题标题】:How to get week starting date from a date in R [duplicate]如何从R中的日期获取周开始日期[重复]
【发布时间】:2017-09-17 04:43:20
【问题描述】:

我有一个数据集,其中有一列包含日期。我想找到这些 date 值的开始日期。

我使用来自lubridateweek 函数获取周数。 例如,

week(as.Date("04/20/2017", "%m/%d/%Y"))

#Solution
[1] 16

除了weeknum,有没有办法获得一周的开始日期?在这种情况下,我期待“04/16/2017”或“04/17/2017”。如果一周从星期日或星期一开始,我不是很特别。 我查看了this 问题,但没有从中得到太多。

【问题讨论】:

  • 另一种方式,用data.table:round(as.IDate("04/20/2017", "%m/%d/%Y"), "week")

标签: r date lubridate


【解决方案1】:

使用lubridate 包中的floor_date 函数。

library("lubridate")
floor_date(as.Date("04/20/2017", "%m/%d/%Y"), unit="week")

【讨论】:

  • 让你在运行floor_date之前添加library(lubridate)
【解决方案2】:

你可以在下面使用

as.Date(format(as.Date("04/20/2017", "%m/%d/%Y"),"%Y-%W-1"),"%Y-%W-%u")
[1] "2017-04-17"

【讨论】:

  • 我不确定这是否与format 的工作方式或仅在此处使用有关,但这并不适用于所有日期;例如,as.Date(format(as.Date("01/04/2019", "%m/%d/%Y"),"%Y-%W-1"),"%Y-%W-%u") 返回 NA,因为 format(as.Date("01/04/2019", "%m/%d/%Y"),"%Y-%W-1") 返回 "2019-00-1"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
  • 2017-07-19
相关资源
最近更新 更多