преобразование данных во временные ряды - PullRequest
0 голосов
/ 23 января 2019

У меня есть набор данных CSV, который я хотел бы преобразовать в данные временных рядов для анализа временных рядов.Данные выглядят так (есть дополнительные столбцы, и есть 17 190 объектов.):

temp  interval

   10.0  2014-04-01 00:00:00

   10.0  2014-04-01 00:15:00

   10.0  2014-04-01 00:30:00

   10.0  2014-04-01 00:45:00

   7.8   2014-04-01 01:00:00

Столбец интервала имеет формат POSIXct.

Я был бы признателен за помощь скод для преобразования его во временные ряды, пожалуйста.

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Если вы читаете в CSV с read_csv в tidyverse, вы автоматически получите столбец интервала в классе POSIXct.

dput ниже:

library(tidyverse)

df <- structure(list(temp = c(10, 10, 10, 10, 7.8), interval = structure(c(1396310400, 
1396311300, 1396312200, 1396313100, 1396314000), class = c("POSIXct", 
"POSIXt"), tzone = "UTC")), class = c("spec_tbl_df", "tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -5L), spec = structure(list(
cols = list(temp = structure(list(), class = c("collector_double", 
"collector")), interval = structure(list(format = ""), class = c("collector_datetime", 
"collector"))), default = structure(list(), class = c("collector_guess", 
"collector")), skip = 1), class = "col_spec"))

выЗатем можно просто изменить порядок столбцов и преобразовать в зоопарк.

library(zoo)

df <- df %>% 
  select(interval, temp) %>% 
  zoo()

class(df)
[1] "zoo"
0 голосов
/ 23 января 2019

CSV обозначает значения, разделенные запятыми . Данные, показанные в вопросе, не имеют такой формы, но если мы предположим, что данные представляют собой фрейм данных DF, воспроизводимый в примечании в конце, то следующий код дает серию зоопарков z, а также преобразует ее в ts серия tt где время - это количество секунд с 1970-01-01 00:00:00. См. ?read.zoo для получения дополнительной информации об этой функции. Также в пакет зоопарка входит целая виньетка с множеством read.zoo примеров.

z может использоваться для построения графика, а tt может быть полезным, если вы используете функции, которые принимают только ts ввод классов.

library(zoo)
z <- read.zoo(DF, index = "interval", tz = "")
tt <- as.ts(z)

Примечание

Lines <- "
temp  interval
   10.0  2014-04-01 00:00:00
   10.0  2014-04-01 00:15:00
   10.0  2014-04-01 00:30:00
   10.0  2014-04-01 00:45:00
   7.8   2014-04-01 01:00:00"

# read into separate lines, trim whitespace from ends and
#  replace 2 or more consecutive spaces with comma
L <- gsub("  +", ",", trimws(readLines(textConnection(Lines))))
DF <- read.csv(text = L)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...