【发布时间】:2018-07-25 08:07:30
【问题描述】:
我是 R 的初学者。我敢打赌这个问题听起来很愚蠢,但它太具体了,我在互联网上找不到信息。 我必须从数据框中计算处理时间。问题是,数据框有一个日期列和一个时间列。我是否可以轻松地将它们合并以获得时间戳而不使用循环?
【问题讨论】:
-
请向我们展示一个可重现的示例,它是预期的输出。
我是 R 的初学者。我敢打赌这个问题听起来很愚蠢,但它太具体了,我在互联网上找不到信息。 我必须从数据框中计算处理时间。问题是,数据框有一个日期列和一个时间列。我是否可以轻松地将它们合并以获得时间戳而不使用循环?
【问题讨论】:
考虑这个数据示例:
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
现在将paste 与as.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 <- as.POSIXct(paste(df$day, df$times, sep = " "), tryFormats = c("%Y-%m-%d %H:%M:%OS"))
paste 默认有sep = " "