在R

时间:2015-05-20 20:05:11

标签: r date numbers rstudio type-conversion

有人可以帮我解决以下问题:

我有个约会日期,例如:3-1-2014,

我想把它转换成5号,因为它是星期五。

所以7-1-2014将是1,因为它是星期一。

哪个包/代码可以为我做这个?

由于

4 个答案:

答案 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选项。