Syntax error How to calculate two period moving average for vector elements in R?

How to calculate two period moving average for vector elements in R?



If we want to find the two−period moving average easily then it cannot be done in base R. We need to use rollmean function of zoo package that solves this problem in a single line of code. For example, if we have a vector x that contains hundred from starting from 1 to 100 then the two−period moving for x can be found by using rollmean(x,2)

Loading zoo package −

library(zoo)

Examples

 Live Demo

x1<−1:10
x1

Output

[1] 1 2 3 4 5 6 7 8 9 10

Example

rollmean(x1,2)
[1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5
x2<−1:120
rollmean(x2,2)
[1]   1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5 12.5
[13] 13.5 14.5 15.5 16.5 17.5 18.5 19.5 20.5 21.5 22.5 23.5 24.5
[25] 25.5 26.5 27.5 28.5 29.5 30.5 31.5 32.5 33.5 34.5 35.5 36.5
[37] 37.5 38.5 39.5 40.5 41.5 42.5 43.5 44.5 45.5 46.5 47.5 48.5
[49] 49.5 50.5 51.5 52.5 53.5 54.5 55.5 56.5 57.5 58.5 59.5 60.5
[61] 61.5 62.5 63.5 64.5 65.5 66.5 67.5 68.5 69.5 70.5 71.5 72.5
[73] 73.5 74.5 75.5 76.5 77.5 78.5 79.5 80.5 81.5 82.5 83.5 84.5
[85] 85.5 86.5 87.5 88.5 89.5 90.5 91.5 92.5 93.5 94.5 95.5 96.5
[97] 97.5 98.5 99.5 100.5 101.5 102.5 103.5 104.5 105.5 106.5 107.5 108.5
[109] 109.5 110.5 111.5 112.5 113.5 114.5 115.5 116.5 117.5 118.5 119.5
x3<−sample(0:5,111,replace=TRUE)
rollmean(x3,2)
[1]  3.0 4.5 5.0 4.5 2.5 1.0 2.0 1.5 0.5 2.5 4.0 2.0 0.0 0.5 1.0 3.0 3.0 2.0
[19] 3.0 3.0 1.5 0.5 3.0 2.5 1.0 2.0 3.5 5.0 3.0 2.0 2.5 3.5 4.0 1.5 0.5 2.5
[37] 4.5 3.5 1.5 1.0 2.0 3.0 2.5 1.5 1.5 2.5 3.0 2.0 1.5 2.5 3.0 2.5 2.0 2.5
[55] 2.0 2.5 3.5 2.5 2.0 1.5 2.0 2.5 1.5 1.5 1.5 2.0 3.5 2.5 1.0 2.0 4.0 5.0
[73] 4.5 4.0 4.5 4.5 4.0 2.5 2.5 4.5 4.0 2.5 1.0 2.5 2.5 0.5 1.0 1.0 1.5 2.5
[91] 3.0 1.5 0.5 1.0 1.5 3.0 3.5 2.0 1.0 2.5 3.5 3.0 2.5 3.5 5.0 5.0 4.5 2.5
[109] 3.0 2.5
x4<−sample(1:5,111,replace=TRUE)
rollmean(x4,2)
[1]  5.0 3.0 2.5 4.0 2.5 2.5 3.0 1.5 3.0 4.0 2.0 2.5 2.5 2.0 4.0 5.0 4.0 3.0
[19] 4.0 3.0 2.0 3.0 4.0 4.5 3.5 3.5 2.5 1.0 3.0 4.5 4.0 3.0 1.5 1.0 3.0 5.0
[37] 3.0 1.0 1.5 2.5 2.5 3.0 2.5 2.0 3.5 3.5 3.5 3.5 2.0 2.0 4.0 4.0 4.0 5.0
[55] 3.5 3.0 3.0 2.0 3.0 2.5 1.5 1.5 3.0 3.0 1.5 2.0 2.5 4.0 5.0 4.5 3.0 1.5
[73] 2.0 4.0 3.5 2.5 2.0 2.0 3.5 4.0 4.0 4.0 3.0 2.0 2.5 4.0 4.5 2.5 1.5 2.5
[91] 2.5 3.5 3.0 1.0 1.5 2.0 2.5 2.0 1.0 2.5 2.5 3.0 4.5 3.5 4.0 5.0 3.5 2.0
[109] 3.0 4.0
x5<−sample(1:50,120,replace=TRUE)
rollmean(x5,2)
[1]  37.5 32.0 32.5 34.5 29.0 34.0 30.0 33.0 30.0 30.0 34.5 13.5 13.0 16.0 27.0
[16] 29.0 28.5 35.5 37.5 34.5 29.0 28.0 31.0 43.5 46.0 27.5 16.5 32.5 33.5 32.5
[31] 37.5 31.0 15.5 10.5 26.0 21.5 21.0 30.0 27.5 21.0 27.5 37.0 33.0 43.0 38.5
[46] 21.0 20.0 27.0 25.5 33.5 34.5 28.0 16.5 10.5 26.5 24.0 25.0 32.0 16.5 21.0
[61] 20.5 13.0 25.0 35.5 23.0 14.5 21.5 10.5 18.0 17.5 7.5 11.0 10.5 27.5 23.0
[76] 13.5 15.5 21.5 35.0 38.0 29.5 21.0 17.5 25.0 22.0 14.0 18.0 13.5 12.5 29.5
[91] 47.0 27.0 26.5 43.0 45.5 39.5 33.5 30.5 16.0 5.0 26.5 42.0 28.5 24.5 21.0
[106] 8.5 6.5 27.5 35.5 25.5 33.5 39.0 31.0 26.5 32.5 21.0 10.5 11.5 13.0
x6<−sample(91:100,120,replace=TRUE)
rollmean(x6,2)
[1]  95.0 94.0 95.0 94.5 96.5 95.0 92.5 95.0 96.5 97.0 96.0 97.0
[13] 98.0 96.5 98.0 99.5 99.5 97.5 94.5 97.0 99.5 97.0 93.5 95.5
[25] 99.5 98.0 96.0 98.0 97.0 92.5 95.5 100.0 100.0 99.0 99.0 99.5
[37] 97.5 94.5 96.5 98.0 93.5 95.0 97.0 93.5 95.0 97.0 95.5 93.0
[49] 92.0 93.0 96.0 97.0 96.0 97.0 94.0 94.5 98.0 98.5 95.0 92.5
[61] 95.0 94.5 96.0 96.0 95.5 97.5 97.0 96.0 94.5 93.0 91.5 92.0
[73] 95.0 97.5 97.5 95.0 95.0 97.0 95.5 95.0 93.5 94.0 94.0 93.5
[85] 96.0 94.5 95.0 97.5 99.0 95.5 95.5 95.5 95.5 96.5 92.5 95.0
[97] 94.5 95.0 95.5 92.0 91.5 93.5 95.0 95.5 96.5 96.5 94.5 93.5
[109] 97.0 95.0 92.5 92.5 91.5 94.0 95.0 95.5 98.5 96.0 95.5
x7<−rnorm(50,5,0.5)
rollmean(x7,2)
[1] 5.480386 5.447735 5.411541 4.920386 5.179600 5.283988 5.171337 5.249699
[9] 5.191743 5.259015 5.007683 4.996620 4.829728 4.294174 4.718041 5.287286
[17] 5.300202 5.306356 5.328401 5.122863 5.064679 4.806393 4.620227 4.946723
[25] 5.273818 5.262808 5.224571 5.105804 5.115384 5.720728 4.859122 4.447057
[33] 5.122608 4.862555 4.868280 4.399689 4.053471 4.768004 4.767681 5.001960
[41] 5.081844 4.530953 4.181293 3.973446 4.100880 4.184364 4.364118 4.598242
[49] 4.764706
x8<−runif(50,5,10)
rollmean(x8,2)
[1]  8.058824 8.243607 8.555279 8.167787 7.318688 8.031011 8.259745 7.551773
[9]  6.461240 7.416219 9.041726 7.248550 6.468459 7.297782 7.023565 6.675229
[17] 6.787259 7.667929 8.520316 7.144133 7.185223 7.089798 7.531991 8.460906
[25] 8.486284 8.251683 6.947352 7.645662 6.853478 6.889086 7.891153 8.025121
[33] 7.420661 7.357484 6.920305 5.854457 6.961225 8.196131 8.013994 7.056246
[41] 8.132790 8.148006 8.128420 7.191846 7.159202 9.603268 8.572502 7.001365
[49] 6.500651
x9<−rexp(50,2.1)
rollmean(x9,2)
[1]  0.50955472 0.47625696 0.44801966 0.54031908 0.44315428 0.30659278
[7]  0.12889859 0.06259362 0.60524099 0.59404019 0.20083159 0.26323887
[13] 0.17771971 0.80555530 0.76444119 0.87520681 0.97853392 0.58382596
[19] 0.48346306 0.13819934 0.15771218 0.24265242 0.39860430 0.72997709
[25] 0.55388338 0.07809430 0.10359228 0.17891867 0.40828716 0.33985932
[31] 0.21839668 0.40999751 0.33016602 0.14308831 0.63506390 1.05480764
[37] 1.29507319 1.23082710 0.59804633 0.39464417 0.31223577 0.14141055
[43] 0.04557646 0.29261665 0.61306151 0.55907498 0.46214800 0.73766138
[49] 0.55396346
x10<−rlnorm(50,2,1.5)
rollmean(x10,2)
[1]   4.871013 5.354362 1.862284 31.728599 31.585093 1.676455 15.009501
[8]  17.861997 6.556540 37.194718 34.591386 6.580697 10.248382 37.585671
[15] 34.945119 8.400405 13.329515 6.899100 17.023316 24.452512 53.928439
[22] 48.656265 2.999969 4.237573 7.059769 4.747940 4.274969 4.085395
[29] 3.502757 6.556758 18.719148 19.074384 7.633016 10.052852 80.373963
[36] 85.713024 18.683646 7.845827 4.430249 11.650022 26.635095 18.275929
[43] 1.449896 2.641906 4.318882 8.366553 9.616981 19.477526 17.515400
Updated on: 2020-10-17T12:59:59+05:30

192 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements