【问题标题】:Changing Date format with certain conditions (combining columns)在特定条件下更改日期格式(组合列)
【发布时间】:2017-08-30 03:51:22
【问题描述】:

我是 R 新手,但遇到了问题。我有一个 CSV 文件,我将日期和时间列组合在一起并采用特定格式。日期列的格式不一致(有两种格式)。我希望它们在一个名为 rtime 的新列中采用特定格式,如图所示在下面的示例中。

Date           Time           rtime       
01-Sep-15     11:33:40    2015-09-01 11:33:40
01-Sep-15     11:33:50    2015-09-01 11:33:50
04/24/16      00:00:10    2016-04-24 00:00:10
04/24/16      00:00:20    2016-04-24 00:00:20

我使用了一个单独适用于 01-Sep-15 格式的代码。提前感谢您的建议。

【问题讨论】:

    标签: r date time formatting


    【解决方案1】:

    我们可以尝试使用lubridate 中的parse_date_time,它可以采用多种格式

    library(tidyverse)
    df1 %>% 
      mutate(rtime = parse_date_time(paste(Date, Time),
             c("%d-%m-%y %H:%M:%S", "%m/%d/%y %H:%M:%S")))
    #       Date     Time               rtime
    #1 01-Sep-15 11:33:40 2015-09-01 11:33:40
    #2 01-Sep-15 11:33:50 2015-09-01 11:33:50
    #3  04/24/16 00:00:10 2016-04-24 00:00:10
    #4  04/24/16 00:00:20 2016-04-24 00:00:20
    

    数据

    df1 <- structure(list(Date = c("01-Sep-15", "01-Sep-15", "04/24/16", 
    "04/24/16"), Time = c("11:33:40", "11:33:50", "00:00:10", "00:00:20"
     )), .Names = c("Date", "Time"), class = "data.frame", 
     row.names = c(NA, -4L))
    

    【讨论】:

    • 嗨 akrun,它似乎没有添加 rtime 列。我使用此代码添加了 csv 文件 filename &lt;- read_csv("~path") 我给出的示例是格式的样子,实际上有 24,000 个观察值与这种格式混合。
    • @Ani - 确实如此。 akrun 提供了一个完整的、可重现的示例,它清楚地在 mutate 中添加了额外的 rtime 列。你有没有用 df1 &lt;- df1 %&gt;% ... 这样的新结果覆盖原来的 df1
    猜你喜欢
    • 2020-03-23
    • 2022-01-13
    • 2021-02-06
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2020-07-20
    • 2019-03-30
    相关资源
    最近更新 更多