【问题标题】:How to create day part in R from a vector of POSIXct timestamps?如何从 POSIXct 时间戳的向量在 R 中创建日部分?
【发布时间】:2016-04-07 00:54:00
【问题描述】:

我有一长串 POSIXct 时间戳。我想为每条记录返回一天部分,包括星期几。 例如:

[1] Sunday night
[2] Sunday night
[3] Sunday afternoon
[4] Saturday night
[5] Sunday afternoon

...等等。

以下是一小部分数据:

my_dates <- as.POSIXct(c("2000-03-12 19:40:00 AEDT",
                            "2000-03-19 17:40:00 AEDT", 
                            "2000-03-26 14:10:00 AEST", 
                            "2000-04-01 19:40:00 AEST", 
                            "2000-04-09 14:10:00 AEST",
                            "2000-04-16 14:40:00 AEST",
                            "2000-04-22 19:40:00 AEST",
                            "2000-04-30 14:10:00 AEST",
                            "2000-05-07 14:10:00 AEST",
                            "2000-05-14 14:10:00 AEST"))

我尝试了很多不同的方法,但最后总是丢失日期格式。

任何帮助将不胜感激。 谢谢

【问题讨论】:

  • 您将始终丢失日期格式,因为“星期天晚上”不是有效的日期对象。它最终会成为一个字符串。
  • 我的意思是,在转换时间戳的原始向量时,我在操作之间丢失了日期格式。

标签: r timestamp posixct


【解决方案1】:

一些有创意的formatting 和cutting 应该能够让你到达那里:

paste(
  format(my_dates, "%A"),
  c("night","morn","afternoon","night")[
    cut(as.numeric(format(my_dates,"%H")), c(0,5,11,17,23))
  ]
)
# [1] "Sunday night"     "Sunday afternoon" "Sunday afternoon" "Saturday night"  
# [5] "Sunday afternoon" "Sunday afternoon" "Saturday night"   "Sunday afternoon"
# [9] "Sunday afternoon" "Sunday afternoon"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多