首页 > 解决方案 > 如何转换从“tbl_df”“tbl”“data.frame”中导入的数据集。” 到“xts”?

问题描述

我正在尝试将从 excel 导入的数据集转换为时间序列,以便使用它运行回归。数据由 1997 年 1 月至 2018 年 12 月期间标准普尔 500 指数的月度回报组成。在导入数据之前,我确保没有 NA,并且我制作了包含日期的第一列(m/d/y) 日期格式。我的第二列,即退货价格,采用“数字”格式。正确导入的数据,但是,该类显示为“tbl_df”“tbl”“data.frame”。

当我使用“视图(SP500.1)”时,数据显示在一个看起来像这样的表中......

# A tibble: 264 x 2
   Date       `Adj Close`
   <chr>            <dbl>
 1 1997-01-01        786.
 2 1997-02-01        791.
 3 1997-03-01        757.
 4 1997-04-01        801.
 5 1997-05-01        848.
 6 1997-06-01        885.
 7 1997-07-01        954.
 8 1997-08-01        899.
 9 1997-09-01        947.
10 1997-10-01        915.
# … with 254 more rows

任何帮助将非常感激!提前致谢!最好的,艾玛

标签: r

解决方案


假设最后在注释中可重现地显示数据,将其读入z具有Date类索引的动物园系列,然后将其转换为 xts 对象x

library(xts)
library(tibble)

z <- read.zoo(SP500.1)
x <- as.xts(z)

yearmon或者使用类索引可能更有意义:

z <- read.zoo(SP500.1, FUN = as.yearmon)
x <- as.xts(z)

笔记

library(tibble)
SP500.1 <-
structure(list(Date = c("1997-01-01", "1997-02-01", "1997-03-01", 
"1997-04-01", "1997-05-01", "1997-06-01", "1997-07-01", "1997-08-01", 
"1997-09-01", "1997-10-01"), `Adj Close` = c(786, 791, 757, 801, 
848, 885, 954, 899, 947, 915)), row.names = c(NA, -10L), class = c("tbl_df", 
"tbl", "data.frame"))

推荐阅读