Я хочу преобразовать объект R ts (т.е. таймсерии) R в data.frame. Имена строк и столбцов объекта ts следует сохранить.
Рассмотрим набор данных AirPassengers:
data(AirPassengers)
Я мог бы преобразовать этот объект ts в data.frame следующим образом:
AirPassengers <- data.frame(matrix(as.numeric(AirPassengers), ncol = 12, byrow = TRUE))
colnames(AirPassengers) <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
rownames(AirPassengers) <- 1949:1960
Однако это кажется слишком сложным. Удивительно, но поиск в Google не нашел более простого решения.
Вопрос: Есть ли простое решение, как преобразовать объекты ts в data.frame без потери имен столбцов и имен?
@PoGibas Спасибо за ссылку! Действительно, я сам не нашел эту ветку, и особенно 2) принятого ответа решает мою проблему более стандартизированным способом. Однако меня очень удивляет отсутствие предопределенной функции R.
Если вы хотите использовать xts в качестве решения для таймсерий, вы можете «деконструировать» таймсерии. Используйте coredata (x), чтобы разобрать данные. Используйте index (x), чтобы разобрать index / times. Деконструкция означает, что вы получаете данные из xts в формат фрейма данных.
@Toolbox Ответ Йозефа идеально соответствует моим потребностям, поэтому я собираюсь использовать его подход. Тем не менее, большое спасибо за ваш комментарий, приятно знать, что есть и другие альтернативы.





Основная проблема заключается в том, что вывод print для объекта временного ряда довольно сильно обрабатывается .preformat.ts. Если вы хотите преобразовать его во фрейм данных, который визуально похож на результаты печати, это должно сделать:
df <- data.frame(.preformat.ts(datasets::AirPassengers), stringsAsFactors = FALSE)
Обратите внимание, что это приведет к появлению символов (именно так работает .preformat.ts), поэтому будьте осторожны с использованием (не уверены, какова цель преобразования?).
Отлично, это именно то, что я искал. Большое спасибо!
Связанные Преобразование временного ряда во фрейм данных и обратно