【问题标题】:How do I convert a data set imported from excel from a ""tbl_df" "tbl" "data.frame"." to "xts"?如何转换从“tbl_df”“tbl”“data.frame”中导入的数据集。”到“xts”?
【发布时间】:2019-12-01 09:08:35
【问题描述】:

我正在尝试将从 excel 导入的数据集转换为时间序列,以便使用它运行回归。数据由 1997 年 1 月至 2018 年 12 月期间标准普尔 500 指数的月度回报组成。在导入数据之前,我确保没有 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

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

【问题讨论】:

  • 试试library(xts); xts(SP500.1[["Adj Close"]], order.by = as.Date(SP500.1$Date))或者使用read.zoo直接读取数据
  • 您好,谢谢您的建议!不幸的是,我无法让该代码将其转换为 xts

标签: r


【解决方案1】:

假设最后的注释中显示的数据可重现,将其读入带有Date 类索引的动物园系列z,然后将其转换为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"))

【讨论】:

  • 第一部分效果很好。非常感谢!
  • @EmmaVlahakis 如果它适合您,请考虑通过单击投票按钮旁边的复选标记来接受答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
  • 2018-06-20
  • 1970-01-01
  • 2020-03-07
  • 2011-03-31
相关资源
最近更新 更多