【问题标题】:Converting two columns of date and time data to one将两列日期和时间数据转换为一列
【发布时间】:2019-05-26 06:39:38
【问题描述】:

我有一个简单的数据框:

D <- c("2012/12/14", "2012/12/14")
Time <- c("18:40:37", "18:40:48")
df1 <- data.frame(D, Time)

我希望将两列日期和时间信息合二为一,最好采用日、月、年、时间的格式。

我该怎么做呢?

【问题讨论】:

    标签: r


    【解决方案1】:
    R> within(df1, { timestamp=format(as.POSIXct(paste(D, Time)), "%d/%m/%Y %H:%M:%S") })
    
               D     Time           timestamp
    1 2012/12/14 18:40:37 14/12/2012 18:40:37
    2 2012/12/14 18:40:48 14/12/2012 18:40:48
    

    【讨论】:

    • 非常感谢@rcs - 但是如何在我的数据框 (df1) 中获得一个额外的列以及这个组合的日期/时间列?
    • 我知道这条评论晚了两年,但答案应该是 df1
    【解决方案2】:

    一个稍短的替代方案可能是:

    df1 <- within(df1, { timestamp=strptime(paste(D, Time), "%Y/%m/%d%H:%M:%S") })
    df1
           D     Time           timestamp
    1 2012/12/14 18:40:37 2012-12-14 18:40:37
    2 2012/12/14 18:40:48 2012-12-14 18:40:48
    

    【讨论】:

      【解决方案3】:
      df1$TS <- as.POSIXct(paste(df1$D, df1$Time))
      

      这将在 df1 中创建一个额外的列 TS,它结合了日期和时间,并且类型为 POSIXct。您可以通过

      确认
      str(df1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-12
        • 2017-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-27
        相关资源
        最近更新 更多