我目前有一个数据框(也有xts格式的数据,但我不知道采用哪种格式会更容易应用该功能),它由大约50只股票及其在21年内的价格组成。我想在R中创建一个函数,该函数适用于数据框,其方式是每行将对另一行执行一定数量的运算。例如,我希望将第一行中的值添加到第二行中的值,将第二行中的值添加到第三行中的值,依此类推。我想要应用的实际功能比这要复杂一些,但是正是应用功能的格式使我很难。
我搞砸了apply(),但似乎无法使函数正常工作。任何帮助,将不胜感激。我提供了我要使用的数据样本。
Date AT10Y DE10Y SEK10Y OMX `USD/SEK` UK10Y FTSE_AllShare `GBP/USD` ES10Y
<date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1997-01-01 0 0 0 0 0 0 0 1.71 0
2 1997-01-02 5.91 5.98 6.84 0 6.86 7.70 1990. 1.69 6.97
3 1997-01-03 6.00 5.94 6.85 0 6.91 7.68 2004. 1.69 6.94
4 1997-01-06 6.00 5.97 6.86 0 6.95 7.72 2013. 1.68 6.94
5 1997-01-07 6.00 5.96 6.86 0 6.96 7.73 2004. 1.70 6.98
6 1997-01-08 5.97 5.93 6.82 0 6.97 7.71 2009. 1.69 6.94
7 1997-01-09 5.92 5.89 6.70 0 6.92 7.64 2008. 1.69 6.89
8 1997-01-10 5.92 5.91 6.75 0 6.90 7.63 1997. 1.68 6.92
9 1997-01-13 5.83 5.82 6.67 0 6.94 7.56 2018. 1.67 6.74
10 1997-01-14 5.82 5.78 6.61 0 6.97 7.54 2043. 1.67 6.73
答案 0 :(得分:0)
您要查找的功能是dplyr::lag
或lead
。 https://dplyr.tidyverse.org/reference/lead-lag.html
例如:
require(dplyr)
mutate(df, newsum=at10y+lead(at10y))
将为您提供at10y列,其中每一行是该行加上下一行的总和。