我的数据集中有一列字符串,格式为年周(例如'201401'相当于2014年4月7日,或者是一年中的第一个会计周)
我正在尝试将这些转换为正确的日期,以便我可以稍后操纵它们,但是我总是会收到特定年份的圣诞日期,特别是4月14日。
e.g。
test_set <- c('201401', '201402', '201403')
as.Date(test_set, '%Y%U')
给了我:
[1] "2014-04-14" "2014-04-14" "2014-04-14"
答案 0 :(得分:2)
尝试这样的事情:
> test_set <- c('201401', '201402', '201403')
>
> extractDate <- function(dateString, fiscalStart = as.Date("2014-04-01")) {
+ week <- substr(dateString, 5, 6)
+ currentDate <- fiscalStart + 7 * as.numeric(week) - 1
+ currentDate
+ }
>
> extractDate(test_set)
[1] "2014-04-07" "2014-04-14" "2014-04-21"
基本上,我从一年开始提取几周,将其转换为几天,然后将该天数添加到会计年度的开始时间(少于1天以使事情排成一行)。
答案 1 :(得分:0)
不是100%确定你想要的输出是什么,但这可能有效
as.Date(paste0(substr(test_set, 1, 4), "-04-07")) +
(as.numeric(substr(test_set, 5, 6)) - 1) * 7
# [1] "2014-04-07" "2014-04-14" "2014-04-21"