【问题标题】:Cast text to timestamp将文本转换为时间戳
【发布时间】:2022-01-18 06:11:11
【问题描述】:

假设我有以下数据框。

date <- c('23/01/21 22:53','15/02/21 20:01', '05/03/21 07:49', '10/01/21 18:15', '09/03/21 12:53' )
id <- c(1:5)
df <- data_frame(id, date)

我尝试使用以下代码将其从文本转换为时间戳

df$date2 <- strptime(df$date, "%d/%m/%Y %H:%M")

这是我得到的结果

年份现在显示 0021 而不是 2021。有什么方法可以显示正确的年份吗? 非常感谢任何帮助。

【问题讨论】:

  • strptime(df$date, "%d/%m/%y %H:%M"),因为你只有两位数的年份。

标签: r timestamp


【解决方案1】:

您可以进行替换以将两位数年份转换为正确的四位数值:

date <- c('23/01/21 22:53','15/02/21 20:01', '05/03/21 07:49', '10/01/21 18:15', '09/03/21 12:53')
date <- paste0(substr(date, 1, 6),
               ifelse(as.numeric(substr(date, 7, 8)) < 30, "20", "19"),
               substr(date, 7, 14))
df <- data.frame(c(1:5), date)

df$date2 <- strptime(df$date, "%d/%m/%Y %H:%M")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-15
    • 2018-07-23
    • 2016-01-14
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    相关资源
    最近更新 更多