如何拆分日期&时间观察

时间:2015-09-29 08:51:23

标签: r datetime time subset

我只是在学习R并且反对这一点。

我有以下时间序列观察,

10/08/2015 02:31:04.450
  • 我想将日期和时间分开来分开列。
  • 我是否需要及时缩短毫秒数?如果是这样的话。

我一直在关注,data tablelubridate试图弄明白。我查看了XTS,但这似乎更倾向于日期汇总。

它们是R中允许进行此拆分的现有包吗?我会用什么样的论据。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:5)

使用data.table非常简单:

require(data.table)
x <- "10/08/2015 02:31:04.450"
IDateTime(strptime(x, "%d/%m/%Y %H:%M:%OS"))

为您提供以下data.table

        idate    itime
1: 2015-08-10 02:31:04

答案 1 :(得分:3)

x <- "10/08/2015 02:31:04.450"
temp <- strptime(x, "%d/%m/%Y %H:%M:%OS")

format(temp,"%H:%M:%S")
#[1] "02:31:04"

as.Date(temp)
#[1] "2015-08-10"

如果您不需要字符形式的时间部分,则可以添加几个步骤

x <- "10/08/2015 02:31:04.450"
temp <- strptime(x, "%d/%m/%Y %H:%M:%OS")

library(chron)
chron(times = format(temp,"%H:%M:%S"))
#[1] 02:31:04

class(chron(times = format(temp,"%H:%M:%S")))
#[1] "times"

as.Date(temp)
# [1] "2015-08-10"

答案 2 :(得分:0)

string_timeStamp = "10/08/2015 02:31:04.450"
parsed_timeStamp = strptime(string_timeStamp, "%d/%m/%Y %H:%M:%OS")

date_time_dataFrame = data.frame(date = cut(parsed_timeStamp, breaks = "days"), 
                             time = format(parsed_timeStamp, "%H:%M:%OS" ))

有关更多格式选项,请查看?strptime