我在格式化为年周我的数据集有一个字符串列(例如“201401” 2014年4月,或一年的第一财政周相当于7日)
我想这些转换为正确的日期,所以我以后可以操纵它们,但我总是收到某一年圣母院日,四月特别是第14位。
如
test_set <- c('201401', '201402', '201403')
as.Date(test_set, '%Y%U')
给我:
[1] "2014-04-14" "2014-04-14" "2014-04-14"
我在格式化为年周我的数据集有一个字符串列(例如“201401” 2014年4月,或一年的第一财政周相当于7日)
我想这些转换为正确的日期,所以我以后可以操纵它们,但我总是收到某一年圣母院日,四月特别是第14位。
如
test_set <- c('201401', '201402', '201403')
as.Date(test_set, '%Y%U')
给我:
[1] "2014-04-14" "2014-04-14" "2014-04-14"
尝试是这样的:
> 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天至使事情排队)。
不是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"