Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R数据组的多个滚动平均窗口_R_Dplyr_Purrr_Purr_Data.table - Fatal编程技术网

R数据组的多个滚动平均窗口

R数据组的多个滚动平均窗口,r,dplyr,purrr,purr,data.table,R,Dplyr,Purrr,Purr,Data.table,使用数据(方),假设我知道成交量和开盘价之间存在平滑的关系。我还知道,最具预测性的滚动平均值的长度因库存而异。对一些人来说,这是短暂的,一天两天。其他10人。我想为每种股票创建长度在2到10天之间的多个滚动方式 到目前为止,我尝试了tibbletime软件包,并获得了一个开始,这样我就可以计算出一个的多重滚动平均值 library(tibbletime) library(tidyverse) data("FANG") FB <- FANG %>% filter(symbol ==

使用数据(方),假设我知道成交量和开盘价之间存在平滑的关系。我还知道,最具预测性的滚动平均值的长度因库存而异。对一些人来说,这是短暂的,一天两天。其他10人。我想为每种股票创建长度在2到10天之间的多个滚动方式

到目前为止,我尝试了tibbletime软件包,并获得了一个开始,这样我就可以计算出一个的多重滚动平均值

library(tibbletime)
library(tidyverse)

data("FANG")

FB <- FANG %>% filter(symbol == “FB”)

meanstep <- seq(2, 10, 1)

col_names <- map_chr(meanstep, ~paste0("rollmean_", .x))

rollers <- map(meanstep, ~rollify(mean, window = .x)) %>% set_names(nm = col_names)

FB_multiroll<- bind_cols(FB, invoke_map(rollers, x = FB$volume))
库(tibbletime)
图书馆(tidyverse)
数据(“方”)
FB%过滤器(符号==“FB”)

meanstepOP在这个问题上加了和,但这个问题已经有6个月没有得到回答了

在版本1.12.0(于2019年1月13日CRAN)中,该软件包获得了一个
frollmean()
函数,可用于按组创建不同长度的多个滚动方式

data(FANG, package = "tibbletime")
library(data.table)   # version 1.12.0 +
meanstep <- 2:10
FANG_with_multiroll <- as.data.table(FANG)[
  , sprintf("rollmean_%02i", meanstep) := frollmean(volume, meanstep), by = symbol][]
FANG_with_multiroll
为了证明这对每个组都有效,我们可以打印每个组的前几行(以及前10列):

data(FANG, package = "tibbletime")
library(data.table)   # version 1.12.0 +
meanstep <- 2:10
FANG_with_multiroll <- as.data.table(FANG)[
  , sprintf("rollmean_%02i", meanstep) := frollmean(volume, meanstep), by = symbol][]
FANG_with_multiroll
      symbol       date   open   high     low  close   volume adjusted rollmean_02 rollmean_03
   1:     FB 2013-01-02  27.44  28.18  27.420  28.00 69846400    28.00          NA          NA
   2:     FB 2013-01-03  27.88  28.47  27.590  27.77 63140600    27.77    66493500          NA
   3:     FB 2013-01-04  28.01  28.93  27.830  28.76 72715400    28.76    67928000  68567466.7
   4:     FB 2013-01-07  28.69  29.79  28.650  29.42 83781800    29.42    78248600  73212600.0
   5:     FB 2013-01-08  29.51  29.60  28.860  29.06 45871300    29.06    64826550  67456166.7
  ---                                                                                         
4028:   GOOG 2016-12-23 790.90 792.74 787.280 789.91   623400   789.91      796250    933733.3
4029:   GOOG 2016-12-27 790.68 797.86 787.657 791.55   789100   791.55      706250    793866.7
4030:   GOOG 2016-12-28 793.70 794.23 783.200 785.05  1132700   785.05      960900    848400.0
4031:   GOOG 2016-12-29 783.33 785.93 778.920 782.79   742200   782.79      937450    888000.0
4032:   GOOG 2016-12-30 782.75 782.78 770.410 771.82  1760200   771.82     1251200   1211700.0
      rollmean_04 rollmean_05 rollmean_06 rollmean_07 rollmean_08 rollmean_09 rollmean_10
   1:          NA          NA          NA          NA          NA          NA          NA
   2:          NA          NA          NA          NA          NA          NA          NA
   3:          NA          NA          NA          NA          NA          NA          NA
   4:    72371050          NA          NA          NA          NA          NA          NA
   5:    66377275    67071100          NA          NA          NA          NA          NA
  ---                                                                                    
4028:      931575      990440   1230083.3     1286314     1333588     1420944     1488560
4029:      897575      903080    956883.3     1167086     1224163     1273089     1357760
4030:      878575      944600    941350.0      982000     1162788     1214000     1259050
4031:      821850      851300    910866.7      912900      952025     1116056     1166820
4032:     1106050     1009520   1002783.3     1032200     1018813     1041822     1180470
FANG_with_multiroll[, head(.SD, 3), .SDcols = 1:10, by = symbol]
    symbol symbol       date     open     high      low    close   volume  adjusted rollmean_02 rollmean_03
 1:     FB     FB 2013-01-02  27.4400  28.1800  27.4200  28.0000 69846400  28.00000          NA          NA
 2:     FB     FB 2013-01-03  27.8800  28.4700  27.5900  27.7700 63140600  27.77000    66493500          NA
 3:     FB     FB 2013-01-04  28.0100  28.9300  27.8300  28.7600 72715400  28.76000    67928000    68567467
 4:   AMZN   AMZN 2013-01-02 256.0800 258.1000 253.2600 257.3100  3271000 257.31000          NA          NA
 5:   AMZN   AMZN 2013-01-03 257.2700 260.8800 256.3700 258.4800  2750900 258.48001     3010950          NA
 6:   AMZN   AMZN 2013-01-04 257.5800 259.8000 256.6500 259.1500  1874200 259.14999     2312550     2632033
 7:   NFLX   NFLX 2013-01-02  95.2100  95.8100  90.6900  92.0100 19431300  13.14429          NA          NA
 8:   NFLX   NFLX 2013-01-03  91.9700  97.9200  91.5300  96.5900 27912500  13.79857    23671900          NA
 9:   NFLX   NFLX 2013-01-04  96.5400  97.7100  95.5400  95.9800 17761100  13.71143    22836800    21701633
10:   GOOG   GOOG 2013-01-02 719.4212 727.0013 716.5512 723.2512  5101500 361.26435          NA          NA
11:   GOOG   GOOG 2013-01-03 724.9313 731.9312 720.7212 723.6713  4653700 361.47415     4877600          NA
12:   GOOG   GOOG 2013-01-04 729.3412 741.4713 727.6812 737.9713  5547600 368.61701     5100650     5100933