Сохранять данные временных рядов длительностью одна секунда в программировании R - PullRequest
0 голосов
/ 25 апреля 2019

Итак, у меня есть данные временного ряда, которые собираются каждые 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
    ....

Я думал обрезать формат времени до чч: мм: сс, но не смог этого сделать.

Ответы [ 3 ]

1 голос
/ 25 апреля 2019

Если мы будем рассматривать их как строки, мы можем разделить и получить первые 3 элемента, или мы можем использовать простое регулярное выражение, т.е.

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

#Or with Regex,

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

Оберните оба утверждения в unique(), чтобы получить уникальное время.

0 голосов
/ 25 апреля 2019

Мы можем использовать 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")
0 голосов
/ 25 апреля 2019

Поскольку это данные временного ряда, мы можем рассматривать их как 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...