我正在处理将基于周的日期转换为基于月的日期。
在检查我的工作时,我发现了以下问题,这是对as.Date()
的简单调用产生的结果。
as.Date("2016-50-4", format = "%Y-%U-%u")
as.Date("2016-50-5", format = "%Y-%U-%u")
as.Date("2016-50-6", format = "%Y-%U-%u")
as.Date("2016-50-7", format = "%Y-%U-%u") # this is the problem
前面的代码对前三行给出了正确的日期:
"2016-12-15"
"2016-12-16"
"2016-12-17"
然而,最后一行代码会回溯1周:
"2016-12-11"
有人能解释一下这里发生了什么吗?
as.Date("2016-50-7", format = "%Y-%U-%u")
被解释为第50周的第一天(即周日)。请参考?strptime
进行验证。 - lmoas.Date("2016-50-7", format = "%Y-%V-%u")
似乎可以工作,但对于某些年份,它会产生与您的示例不同的结果 - 这有多重要可能取决于您的应用程序。 - Miffas.Date("2016-50-7", format = "%Y-%U-%u")
被解释为第50周的第七天(星期日)。 - d.b