2

我的数据集中有一列字符串格式为年周(例如,'201401' 相当于 2014 年 4 月 7 日,或一年中的第一个财政周)

我正在尝试将这些转换为适当的日期,以便以后可以对其进行操作,但是我总是会收到给定年份的日期,特别是 4 月 14 日。

例如

test_set <- c('201401', '201402', '201403')
as.Date(test_set, '%Y%U')

给我:

[1] "2014-04-14" "2014-04-14" "2014-04-14"
4

2 回答 2

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 天以使事情排成一行)。

于 2015-04-14T16:47:22.477 回答
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"
于 2015-04-14T15:44:25.740 回答