【问题标题】:How to use rownames_to_column with dates如何使用带有日期的 rownames_to_column
【发布时间】:2020-11-22 23:59:35
【问题描述】:

我正在尝试将我的 yahoo 价格下载转换为“整洁”格式,但在下面的 reprex 中,日期会丢失其格式并转换为行号。换句话说,如何从 xts 转换为 tibble 并保留日期?

prices <- getSymbols("QQQ", adjustOHLC = TRUE, auto.assign = FALSE) %>%
  as_tibble() %>%
  rownames_to_column(var = "Date")
head(prices)

【问题讨论】:

  • 或者使用 tidyquant 包。然后一切都以 tibbles 形式返回。

标签: r tidyverse xts


【解决方案1】:

要将其全部保存在单个 tidyverse 管道中,只需先转换为数据框:

library(quantmod)
library(tibble)

getSymbols("QQQ", adjustOHLC = TRUE, auto.assign = FALSE) %>%
  as.data.frame() %>%
  rownames_to_column(var = "Date") %>%
  as_tibble()

#> # A tibble: 3,419 x 7
#>    Date       QQQ.Open QQQ.High QQQ.Low QQQ.Close QQQ.Volume QQQ.Adjusted
#>    <chr>         <dbl>    <dbl>   <dbl>     <dbl>      <dbl>        <dbl>
#>  1 2007-01-03     43.5     44.1    42.5      43.2  167689500         38.3
#>  2 2007-01-04     43.3     44.2    43.2      44.1  136853500         39.1
#>  3 2007-01-05     44.0     44.0    43.5      43.8  138958800         38.9
#>  4 2007-01-08     43.9     44.1    43.6      43.9  106401600         38.9
#>  5 2007-01-09     44.0     44.3    43.6      44.1  121577500         39.1
#>  6 2007-01-10     44.0     44.7    43.8      44.6  121070100         39.6
#>  7 2007-01-11     44.7     45.2    44.7      45.1  174029800         40.0
#>  8 2007-01-12     45.0     45.3    45.0      45.3  104217300         40.2
#>  9 2007-01-16     45.3     45.4    45.1      45.3   95690500         40.1
#> 10 2007-01-17     45.1     45.3    44.8      44.9  127142600         39.8
#> # ... with 3,409 more rows

reprex package (v0.3.0) 于 2020 年 8 月 2 日创建

【讨论】:

  • 我不知道为什么,但您的建议似乎将日期格式转换为字符。不过很容易用静音进行修改。
【解决方案2】:

我认为您应该在 .xts 上使用 index() 而不是在 tibble 上使用 rownames_to_column()

library(quantmod)
library(dplyr)

price.xts <-getSymbols("QQQ", adjustOHLC = TRUE, auto.assign = FALSE)
price<-as_tibble(price.xts)
price$Date <-index(price.xts)

head(price)
tail(price)  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 2022-03-08
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2017-12-11
    相关资源
    最近更新 更多