如何转换从Excel中从““ tbl_df”“ tbl”“ data.frame”导入的数据集。到“ xts”?

时间:2019-11-30 23:01:40

标签: r

我正在尝试将从excel导入的数据集转换为时间序列,以便对其进行回归。该数据由S&P500从1997年1月到2018年12月的月度回报组成。在导入数据之前,我确保没有NA,并在第一列中输入了日期,该日期为(m / d / y)日期格式。我的第二列即退货价格为“数字”格式。正确导入的数据,但是,该类显示为“ tbl_df”,“ tbl”,“ data.frame”。

当我使用“ view(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

任何帮助将不胜感激! 提前致谢! 最好, 艾玛

1 个答案:

答案 0 :(得分:0)

假定最后在“注释”中可重复显示的数据将其读入具有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"))