首页 > 解决方案 > 将给定的时间戳拆分为年月日周期格式

问题描述

我正在编写 R 代码,但将日期格式拆分为年、月、日、小时格式时遇到问题。我有一个名为 Metadata 的数据框有一列X_date,包含时间戳等'01.01.2020 00:00:00', '01.01.2020 01:00:00'。我想将此x_date列更改为额外的四列,即year、和。我使用以前的答案尝试了这种方式:monthdayhour
Metadata$Date <- as.Date(Metadata$X_date)

Metadata$Time <- format(as.POSIXct(Metadata$X_date) ,format = "%Y:%m:%d %H")

它给了我这个错误: Error in as.POSIXlt.character(as.character(x), ...) : character string is not in a standard unambiguous format

我对 R 编程很陌生。请帮我。谢谢你的时间。

标签: r

解决方案


指定的format应该与原始向量中“日期/时间”的所有组件出现的顺序相匹配。假设'day'是第一个,然后是'month','POSIXct'中的覆盖将是

as.POSIXct(Metadata$X_date, format = "%d.%m.%Y %H:%M:%S")

由于我们要创建新列,因此可以使用tidyverse

library(tidyverse)
library(lubridate)
Metadata %>%
    mutate(X_date = dmy_hms(X_date), 
            year = year(X_date), 
            month = month(X_date),
            day = day(X_date), 
            hour = hour(X_date))

推荐阅读