Чтобы решить первую проблему, это может вам помочь.Вам не обязательно использовать dplyr в этом случае, использование функции head () должно быть достаточным, если все, что вы хотите сделать, это отстать от переменных.
stocks <- data.frame(
time=as.Date('2009-01-01') + 0:9,
X=rnorm(10, 0, 1),
Y=rnorm(10, 0, 2),
Z=rnorm(10, 0, 4)
)
previous<-head(stocks,9)
df<-data.frame(stocks$time[2:10],stocks$X[2:10],stocks$Y[2:10],stocks$Z[2:10],previous$X,previous$Y,previous$Z)
col_headings<-c("time","X","Y","Z","previousX","previousY","previousZ")
names(df)<-col_headings
Здесь отображаются даты со 2 января по 10 января, причем во фрейм данных также включаются задержки для X, Y и Z.
> df
time X Y Z previousX previousY
1 2009-01-02 0.7878110 -2.1394047 0.68775794 -0.0759606 1.2863089
2 2009-01-03 -0.2767296 -2.3453356 -1.56313888 0.7878110 -2.1394047
3 2009-01-04 -0.2122021 0.1589629 -1.13926020 -0.2767296 -2.3453356
4 2009-01-05 0.1195826 3.2320352 -0.32020803 -0.2122021 0.1589629
5 2009-01-06 0.7642622 -0.7621168 1.66614679 0.1195826 3.2320352
6 2009-01-07 -0.3073972 -2.9475654 5.63945611 0.7642622 -0.7621168
7 2009-01-08 0.3597369 0.5011861 5.95424269 -0.3073972 -2.9475654
8 2009-01-09 -1.8701881 0.4417496 1.34273218 0.3597369 0.5011861
9 2009-01-10 -1.1172033 -0.5566736 0.05432339 -1.8701881 0.4417496
previousZ
1 3.2188050
2 0.6877579
3 -1.5631389
4 -1.1392602
5 -0.3202080
6 1.6661468
7 5.6394561
8 5.9542427
9 1.3427322
Что касается расчетов, то это зависито том, что вы пытаетесь сделать.
например, хотите ли вы добавить 1 к каждой строке в Z?
> df$Z+1
[1] 1.6877579 -0.5631389 -0.1392602 0.6797920 2.6661468 6.6394561
[7] 6.9542427 2.3427322 1.0543234
Вы можете разделить две доходности акций на каждуюдругой, как вы указали.Обратите внимание, что мы объединили их в один фрейм данных, поэтому мы не обязательно проводим «операцию между двумя фреймами данных» как таковую.
> df$Y/df$Z
[1] -3.11069421 1.50040132 -0.13953168 -10.09354826 -0.45741275
[6] -0.52266839 0.08417294 0.32899307 -10.24740160
Указав фрейм данных (в данном случае df) вместе ссоответствующая переменная (как указано после символа $), тогда вы сможете выполнять широкий спектр вычислений на всем фрейме данных.