使用 R 将每日数据转换为每周数据

问题描述

我有两只股票(苹果和谷歌)的每日数据

library(tidyquant)
dt = tidyquant::tq_get(c("AAPL","GOOG")) %>%
  arrange(symbol,date)

我正在尝试使用以下代码将此数据从每日转换为每周

result = dt %>%
  group_by(symbol) %>%
  tidyquant::tq_transmute(mutate_fun = to.weekly) %>% data.table
result[symbol == "AAPL" & date == "2017-02-03"]

不知何故,结果是错误的。 例如,AAPL2017-02-03 的每周数据如下,使用上述代码-

   symbol       date    open    high   low close   volume 
1:   AAPL 2017-02-03 32.0775 32.2975 32.04 32.27 98029200 

但是,正确的结果应该是 -

   symbol       date     open     high      low  close   volume 
1:   AAPL 2017-02-03  30.2325  32.6225  30.1550  32.2700 999124986   

有人可以帮我吗?

谢谢!

解决方法

在撰写本文时:一个错误,请参阅 github issue 148

一种可能的解决方法,使用 tidyr、timetk 和 purrr。使用timetk将数据转成xts格式,将数据转成周格式,再转回data.frame格式。包括来自 tidyr 的 "scripts": { "ng": "ng","start": "ng lint; ng serve --host=0.0.0.0 --poll 500 --disableHostCheck=true --source-map=true","test": "ng test --watch=true --source-map=true --code-coverage --browsers Chrome",nest 以及来自 purrr 的 unnest。 data.table 不是必需的,但打印数据比 tibbles 好得多。

map

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...