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

时间:2017-12-05 01:44:39

标签: r xts

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对象,其中日期保持格式为year-week。当我运行代码时,列采用2016-12-05的形式,这是不正确的,远非我想要实现的目标。

1 个答案:

答案 0 :(得分:4)

这是准常见问题解答的变体,因为日期是日期,月份和年份,因此可以将年份和月份解析为日期&#39;:

或年,一年,一周和一天。否则你是不确定的:

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