有人可以帮我解决以下问题:
我有个约会日期,例如:3-1-2014,
我想把它转换成5号,因为它是星期五。
所以7-1-2014将是1,因为它是星期一。
哪个包/代码可以为我做这个?
由于
答案 0 :(得分:3)
您可以使用lubridate
轻松完成此操作,但它会将星期日编入“1”。因此,自2014年3月1日起,它将在周六返回'7'
library(lubridate)
wday(mdy("3-1-2014"))
[1] 7
答案 1 :(得分:1)
使用“lubridate”包就是答案。它将星期日标记为“1”,将星期六标记为“6”,但您可以通过显示前一天的星期几来简单地移动一天:
library(lubridate)
wday(mdy("3-1-2014") -1)
[1] 6
答案 2 :(得分:1)
使用R base,可以将strftime
函数与“%u”格式参数一起使用以返回工作日。
as.numeric(strftime(as.Date('3-1-2014', "%d-%m-%Y"), "%u"))
[1] 5
答案 3 :(得分:0)
现在您可以将week_start
选项与wday()
一起使用
遵循ISO惯例的星期几-1表示7月星期一 表示星期日(默认)。您可以将lubridate.week.start选项设置为 全局控制此参数。
所以下面的代码给出了期望的输出
library(lubridate)
lubridate::wday(mdy("3-1-2014"), week_start = 1)
[1] 6
请注意,data.table
库具有与wday()
相同的功能,但没有week_start
选项。