Я пытаюсь преобразовать квартальные данные, хранящиеся в data.table
, в панель data.frame, чтобы подготовить ее для дальнейшего анализа. Но, по-видимому, есть проблема при использовании квартальных дат в качестве измерения времени. Я могу преобразовать их в даты, числа или символы, но is.pconsecutive()
не распознает их как квартальные временные ряды, что не позволяет мне использовать определенные функции.
library(zoo)
library(data.table)
dt <- structure(list(Global.Company.Key = c(1380L, 1380L, 1380L, 1380L,
1380L, 1380L, 1380L, 1380L), Calendar.Data.Year.and.Quarter = structure(c(2000,
2000.25, 2000.5, 2000.75, 2001, 2001.25, 2001.5, 2001.75), class = "yearqtr"),
Calendar.Year.Quarter.Integer = c(10957L, 11048L, 11139L,
11231L, 11323L, 11413L, 11504L, 11596L), Year.Date = structure(c(10957,
11048, 11139, 11231, 11323, 11413, 11504, 11596), class = "Date")), .Names = c("Global.Company.Key",
"Calendar.Data.Year.and.Quarter", "Calendar.Year.Quarter.Integer",
"Year.Date"), row.names = c(NA, -8L), class = c("data.table",
"data.frame"))
# defined the date index as integer
pdt <- pdata.frame(dt, index = c("Global.Company.Key", "Calendar.Year.Quarter.Integer"))
is.pconsecutive(pdt)
1380
FALSE
По-видимому, измерение времени анализируется путем проверки того, является ли расстояние между точками данных регулярным и равным единице. Из руководства: «Для оценки последовательности измерение времени интерпретируется как числовое, и данные проверяются на регулярность последовательности с расстоянием 1 между периодами времени для каждого человека (для каждого человека измерение времени может быть интерпретировано как последовательность t, t+1, t+2, ..., где t — целое число)». Итак, каков наилучший и наиболее надежный способ преобразования временных рядов за год и квартал?