as.POSIXct 无法识别日期格式 = "%Y-%W"

as.POSIXct does not recognise date format = "%Y-%W"

library(xts)

data <- data.frame(year_week = c("2016-46", "2016-47", "2016-48"),
                   satisfaction = c(0.25, 0.45, 0.58))

data = xts(data[-1], order.by = as.POSIXct(data$year_week, format = "%Y-%W"))

我想从 data.frame data 创建一个 xts 对象,其中日期保持年-周格式。当我 运行 代码时,列采用 2016-12-05 形式,这是不正确的,与我想要实现的目标相去甚远。

这是 'by can one not parse year and month as a date' 上的准常见问题解答的变体:因为 日期 是日月年。

或年、年、周、日。否则你不确定:

> as.Date(format(Sys.Date(), "%Y-%W-%d"), "%Y-%W-%d")
[1] "2017-12-04"
> 

使用

> Sys.Date()
[1] "2017-12-04"
> format(Sys.Date(), "%Y-%W-%d")
[1] "2017-49-04"
> 

所以 %W 在输入 和输出 上工作,前提是您还提供一天。

对于没有一天的输入数据,您可以只添加给定的工作日,例如 1:

> as.Date(paste0(c("2016-46", "2016-47", "2016-48"), "-1"), "%Y-%W-%w")
[1] "2016-11-14" "2016-11-21" "2016-11-28"
>