【问题标题】:as.POSIXct does not recognise date format = "%Y-%W"as.POSIXct 无法识别日期格式 = "%Y-%W"
【发布时间】:2019-05-29 16:05:47
【问题描述】:
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 的形式,这是不正确的,与我想要实现的目标相去甚远。

【问题讨论】:

    标签: r xts


    【解决方案1】:

    这是关于“不能将年月解析为日期”的准常见问题解答的变体:因为 日期 是日、月和年。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-21
      • 2018-05-15
      • 2019-06-03
      • 2016-01-25
      • 1970-01-01
      相关资源
      最近更新 更多