我有星期日期数据,格式为两位数的星期数yyyy-ww。ww数据跨度2007-01为2010-30。周计数约定是 ISO 8601,正如您在 Wikipedia 的“周数”文章中所见,一年中偶尔会达到 53 周。例如,该系统 2009 年有 53 周,请参阅此 ISO 8601 日历中的周数。(参见其他年份;根据维基百科的文章,第 53 周相当罕见。)
基本上我想读取周日期,将其转换为Date对象并将其保存到data.frame. 作为测试,我通过 将Date对象重新转换为yyyy-ww格式format([Date-object], format = "%Y-%W",这在2009-53. 那一周不能被解释为日期R。这很奇怪,因为没有第 53 周(在 ISO 8601 标准中)的其他年份转换得很好,例如2007-53,而其他也没有第 53 周(在 ISO 8601 标准中)的年份也失败了,例如2008-53
以下最小示例演示了该问题。
最小的例子:
dates <- c("2009-50", "2009-51", "2009-52", "2009-53", "2010-01", "2010-02")
as.Date(x = paste(dates, 1), format = "%Y-%W %w")
# [1] "2009-12-14" "2009-12-21" "2009-12-28" NA "2010-01-04"
# [6] "2010-01-11"
other.dates <- c("2007-53", "2008-53", "2009-53", "2010-53")
as.Date(x = paste(other.dates, 1), format = "%Y-%W %w")
# [1] "2007-12-31" NA NA NA
问题是,我如何R才能接受 ISO 8601 格式的周数?
注意:这个问题总结了我几个小时以来一直在努力解决的一个问题。我已经搜索并找到了各种有用的帖子,例如this,但没有一个能解决问题。