在R编程中保留时间序列为一秒的时间序列数据

时间:2019-04-25 11:00:28

标签: r

所以我有一个时间序列数据,每15到18毫秒捕获一次,如下所示。

    tts <- ("10:49:56:459524", "10:49:56:580531", "10:49:56:720539","10:49:56:861547", "10:49:57:004555", "10:49:57:145563"......)

我的问题是如何处理这些数据,其中我只能保留1秒钟的数据,如下所示。

    delta_tts
    10:49:56
    10:49:57
    ....

我想将时间格式修整为hh:mm:ss,但是无法做到。

3 个答案:

答案 0 :(得分:1)

如果将它们视为字符串,则可以拆分并获取前3个元素,也可以使用简单的正则表达式,即

sapply(strsplit(tts, ':'), function(i)paste(i[1:3], collapse = ':'))

#Or with Regex,

gsub(":*\\w*$", "", tts)

unique()中包装两个语句以获得唯一的时间。

答案 1 :(得分:0)

由于它是一个时间序列数据,我们可以将它们视为POSIXct对象,然后使用format来获取所需格式的数据

format(as.POSIXct(tts, format = "%T"), "%T")
#[1] "10:49:56" "10:49:56" "10:49:56" "10:49:56" "10:49:57" "10:49:57"

或与strptime

format(strptime(tts, format = "%T"), "%T")

数据

tts <- c("10:49:56:459524", "10:49:56:580531", "10:49:56:720539",
         "10:49:56:861547", "10:49:57:004555", "10:49:57:145563")

答案 2 :(得分:0)

我们可以使用substr

substr(tts, 1, 8)
#[1] "10:49:56" "10:49:56" "10:49:56" "10:49:56" "10:49:57" "10:49:57"

或使用sub

sub(":[^:]*$", "", tts)

数据

tts <- c("10:49:56:459524", "10:49:56:580531", "10:49:56:720539",
     "10:49:56:861547", "10:49:57:004555", "10:49:57:145563")