Home Articles

计算R中的滚动性能

Asked
Viewed 306 times
0

我有以下数据帧,

FECHA     Pxlast    
1      2010-12-31    332.636        
2      2011-01-07    334.327        
3      2011-01-14    341.771        
4      2011-01-21    331.241        
5      2011-01-28    333.252

我必须计算一个名为“滚动4周”的新列,这些值基于以下思路,例如对于索引5,它将是pxlast [5] / pxlast [5-number of weeks] -1 .

然后我得到4周的表现,在这个例子中它应该是pxlast [5] = 333.252,pxlast [5-4] = 332.636,然后我除它并且我减去-1,所以结果是-0,384 .

好的,我可以使用"for"循环来完成它;但是阅读一些可以正确执行的功能,我会从PerformanceAnalytics中找到函数 chart.rollingPerformance .

它将滚动应用于一个名为FUN的参数,例如“mean”,它将计算宽度空间之间的平均值,但我不知道如何正确计算性能 .

例如,这是输出数据帧 .

FECHA           Pxlast          Rolling4W
1      2010-12-31    332.636               NA
2      2011-01-07    334.327               NA
3      2011-01-14    341.771               NA
4      2011-01-21    331.241               NA
5      2011-01-28    333.252              -0,384

NA值是因为我们从4个空格(周)的宽度计算性能 .

有没有循环的任何功能吗?

1 Answer

  • 0
    require(data.table)
    d <- data.table(x = 1:5, y=c(1, 2, 4, 7, 11))
    d[, z := shift(y, 4)]
    d[, z := y/z - 1]
    d
    #    x  y  z
    # 1: 1  1 NA
    # 2: 2  2 NA
    # 3: 3  4 NA
    # 4: 4  7 NA
    # 5: 5 11 10
    

Related