今年星期字符串转换为日期(convert year week string to date)

2019-10-22 15:33发布

我在格式化为年周我的数据集有一个字符串列(例如“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"

Answer 1:

尝试是这样的:

> 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天至使事情排队)。



Answer 2:

不是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"


文章来源: convert year week string to date
标签: r as.date