所以我有一个时间序列数据,每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,但是无法做到。
答案 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")