如何使用quantmod包在R中从数据框中提取行索引

3
使用quantmod包,我正在获取股票数据,如下所示。
library(quantmod)
getSymbols('F')
head(F)

输出结果为

           F.Open F.High F.Low F.Close F.Volume
2007-01-03   7.56   7.67  7.44    7.51 78671500
2007-01-04   7.56   7.72  7.43    7.70 63545800
2007-01-05   7.72   7.75  7.57    7.62 40563800
2007-01-08   7.63   7.75  7.62    7.73 48941200
2007-01-09   7.75   7.86  7.73    7.79 56732500
2007-01-10   7.79   7.79  7.67    7.73 42398600
# and an unimportant(here) warning regarding download length

我希望能够从这里提取出明显的日期列,并将数据作为data.frame处理。通常情况下,我会尝试查找列名并提取该列,但日期不包含在某一列中。


抱歉,我没有看到那个。使用data.frame的期望答案可能会有所不同? - Liz Young
让其他人决定它是否被认为是重复的。 - user3710546
重复问题通常会比原始问题获得更多的点击,因为问题的表述方式不同。我的理解是,除非它们是明显的副本,否则不应该将它们删除。 - Mike Wise
2个回答

6
你可以尝试:
  dates <- index(F)

quantmod包提取的数据是以xts格式存储的。将xts时间序列转换为数据框并不总是明智的选择。


1
在这里正确使用它是很好的。 - Mike Wise
没有冒犯之意,关于你的解决方案,它提供了一个更符合OP标题描述的答案。只是在这样的格式转换后,人们会失去 quantmod 软件包提供的许多或全部功能。 - RHertel
完全同意。但有些情况确实需要数据框架,人们需要意识到这两种可能性。 - Mike Wise

4

它不是一个data.frame,而是一个xts。如果你想将其作为data.frame进行操作并获取日期(它们作为行名传递),请尝试:

   df <- data.frame(F)
   row.names(df)

运行得非常完美,我想我的大脑里有 data.frames,不太使用 xts。谢谢。 - Liz Young

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接