在 R 中将日期转换为天数(星期一 = 1,星期二 = 2)
Convert a date to a day number (monday = 1, tuesday = 2) in R
谁能帮我解决以下问题:
我有一个日期,例如:3-1-2014,
我想把它转换成数字 5,因为今天是星期五。
所以 7-1-2014 将是 1,因为它是星期一。
哪个 package/code 可以帮我做这个?
谢谢
您可以使用 lubridate
轻松完成此操作,尽管它会将星期日索引为“1”。因此,由于 2014 年 3 月 1 日是星期六,它将 return '7'
library(lubridate)
wday(mdy("3-1-2014"))
[1] 7
使用包 "lubridate" 几乎就是答案。它将周日索引为“1”,周六索引为“6”,但您可以通过显示前一天的星期几来简单地移动一天:
library(lubridate)
wday(mdy("3-1-2014") -1)
[1] 6
使用 R base,您可以使用带有“%u”格式参数的 strftime
函数来 return 工作日。
as.numeric(strftime(as.Date('3-1-2014', "%d-%m-%Y"), "%u"))
[1] 5
现在您可以将 week_start
选项与 wday()
一起使用
day on which week starts following ISO conventions - 1 means Monday, 7
means Sunday (default). You can set lubridate.week.start option to
control this parameter globally.
所以下面的代码给出了期望的输出
library(lubridate)
lubridate::wday(mdy("3-1-2014"), week_start = 1)
[1] 6
请注意 data.table
库具有同名函数 wday()
但没有 week_start
选项。
谁能帮我解决以下问题:
我有一个日期,例如:3-1-2014,
我想把它转换成数字 5,因为今天是星期五。
所以 7-1-2014 将是 1,因为它是星期一。
哪个 package/code 可以帮我做这个?
谢谢
您可以使用 lubridate
轻松完成此操作,尽管它会将星期日索引为“1”。因此,由于 2014 年 3 月 1 日是星期六,它将 return '7'
library(lubridate)
wday(mdy("3-1-2014"))
[1] 7
使用包 "lubridate" 几乎就是答案。它将周日索引为“1”,周六索引为“6”,但您可以通过显示前一天的星期几来简单地移动一天:
library(lubridate)
wday(mdy("3-1-2014") -1)
[1] 6
使用 R base,您可以使用带有“%u”格式参数的 strftime
函数来 return 工作日。
as.numeric(strftime(as.Date('3-1-2014', "%d-%m-%Y"), "%u"))
[1] 5
现在您可以将 week_start
选项与 wday()
day on which week starts following ISO conventions - 1 means Monday, 7 means Sunday (default). You can set lubridate.week.start option to control this parameter globally.
所以下面的代码给出了期望的输出
library(lubridate)
lubridate::wday(mdy("3-1-2014"), week_start = 1)
[1] 6
请注意 data.table
库具有同名函数 wday()
但没有 week_start
选项。