【问题标题】:Creating a time stamp from a col of dates and a col of times in a data frame [duplicate]从数据框中的日期列和时间列创建时间戳[重复]
【发布时间】:2018-07-25 08:07:30
【问题描述】:

我是 R 的初学者。我敢打赌这个问题听起来很愚蠢,但它太具体了,我在互联网上找不到信息。 我必须从数据框中计算处理时间。问题是,数据框有一个日期列和一个时间列。我是否可以轻松地将它们合并以获得时间戳而不使用循环?

【问题讨论】:

  • 请向我们展示一个可重现的示例,它是预期的输出。

标签: r date


【解决方案1】:

考虑这个数据示例:

df <- data.frame(day = as.Date(c("2018-07-25", "2018-07-24")),
                 times = c("05:24:36", "11:27:14"))

         day    times
1 2018-07-25 05:24:36
2 2018-07-24 11:27:14

现在将pasteas.POSIXct 结合使用,通过矢量化操作创建时间戳变量。

df$ts <- as.POSIXct(paste(df$day, df$times, sep = " "))

         day    times                  ts
1 2018-07-25 05:24:36 2018-07-25 05:24:36
2 2018-07-24 11:27:14 2018-07-24 11:27:14

【讨论】:

  • 如果日期和时间不在标准中或尚未以正确的数据类型存储,则可能添加定义格式的用法。 df$ts &lt;- as.POSIXct(paste(df$day, df$times, sep = " "), tryFormats = c("%Y-%m-%d %H:%M:%OS"))
  • 谢谢。我尝试了这个解决方案。它应该对我有用!
  • paste 默认有sep = " "
猜你喜欢
  • 2022-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-10
  • 2021-03-11
  • 2019-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多