Convenience Functions, Moving Window Statistics, and Graphics

Introduction

This package contains:

  1. Functions that do something convenient.
  2. Functions for calculating moving-window statistics.
  3. Functions for generating graphs.

Convenience functions

truerange

The base R function range returns the minimum and maximum of a vector, but the “range” is actually defined as the difference between the minimum and maximum. This function calculates the actual range. It is equivalent to the base R code diff(range(x)), but a bit simpler and much faster.

x <- rnorm(1000)
all.equal(diff(range(x)), truerange(x))
#> [1] TRUE
as.data.frame(print(microbenchmark(diff(range(x)), truerange(x), times = 500)))
#> Unit: microseconds
#>            expr   min     lq     mean median     uq    max neval
#>  diff(range(x)) 8.542 9.0285 9.495322  9.224 9.5145 38.437   500
#>    truerange(x) 1.432 1.5220 1.684602  1.693 1.7430 12.108   500
expr time
diff(range(x)) 38437
diff(range(x)) 13139
diff(range(x)) 9715
truerange(x) 12108
truerange(x) 1943
diff(range(x)) 11086
diff(range(x)) 10586
diff(range(x)) 9544
truerange(x) 2073
diff(range(x)) 8973
diff(range(x)) 9204
diff(range(x)) 9354
truerange(x) 1772
truerange(x) 1492
diff(range(x)) 9324
truerange(x) 1722
diff(range(x)) 9304
truerange(x) 1743
truerange(x) 1632
truerange(x) 1483
truerange(x) 1482
diff(range(x)) 9364
diff(range(x)) 8873
diff(range(x)) 8984
truerange(x) 1702
diff(range(x)) 9104
truerange(x) 1763
diff(range(x)) 8973
truerange(x) 1663
truerange(x) 1812
diff(range(x)) 9515
diff(range(x)) 9654
truerange(x) 1683
diff(range(x)) 9033
truerange(x) 1853
diff(range(x)) 9204
diff(range(x)) 9544
diff(range(x)) 9294
truerange(x) 1752
truerange(x) 1802
diff(range(x)) 9364
truerange(x) 1703
diff(range(x)) 9955
truerange(x) 1712
truerange(x) 1483
truerange(x) 1612
truerange(x) 1583
diff(range(x)) 9073
diff(range(x)) 8683
diff(range(x)) 9424
diff(range(x)) 9374
truerange(x) 1823
truerange(x) 1562
truerange(x) 1463
truerange(x) 1472
diff(range(x)) 8893
truerange(x) 1743
diff(range(x)) 8773
diff(range(x)) 9775
diff(range(x)) 9043
truerange(x) 1863
diff(range(x)) 9104
truerange(x) 1692
diff(range(x)) 9064
truerange(x) 1712
diff(range(x)) 9384
diff(range(x)) 9024
diff(range(x)) 9504
diff(range(x)) 9644
diff(range(x)) 9314
truerange(x) 1723
truerange(x) 1743
truerange(x) 1863
diff(range(x)) 10185
diff(range(x)) 9494
truerange(x) 1773
diff(range(x)) 8803
truerange(x) 1752
diff(range(x)) 9324
diff(range(x)) 8934
truerange(x) 1672
diff(range(x)) 9414
diff(range(x)) 9144
diff(range(x)) 9013
truerange(x) 1752
diff(range(x)) 9564
truerange(x) 1693
diff(range(x)) 9474
diff(range(x)) 22003
truerange(x) 1933
truerange(x) 1582
diff(range(x)) 9715
diff(range(x)) 8993
diff(range(x)) 8964
truerange(x) 1842
diff(range(x)) 9133
truerange(x) 1863
truerange(x) 1663
diff(range(x)) 9013
truerange(x) 1803
truerange(x) 1672
truerange(x) 1483
truerange(x) 1582
truerange(x) 1462
truerange(x) 1503
truerange(x) 1702
diff(range(x)) 10085
truerange(x) 1813
diff(range(x)) 9654
diff(range(x)) 9534
diff(range(x)) 9554
truerange(x) 1793
diff(range(x)) 9294
diff(range(x)) 9073
diff(range(x)) 9014
diff(range(x)) 8933
truerange(x) 1733
diff(range(x)) 9233
truerange(x) 1743
diff(range(x)) 9985
truerange(x) 1733
truerange(x) 1562
diff(range(x)) 9214
diff(range(x)) 9294
diff(range(x)) 9474
truerange(x) 1723
truerange(x) 1492
truerange(x) 1572
truerange(x) 1453
diff(range(x)) 9273
truerange(x) 1723
diff(range(x)) 9054
truerange(x) 1903
truerange(x) 1502
truerange(x) 1522
diff(range(x)) 9144
diff(range(x)) 9404
diff(range(x)) 9174
diff(range(x)) 9103
diff(range(x)) 8994
diff(range(x)) 9213
diff(range(x)) 9114
truerange(x) 1763
diff(range(x)) 9494
truerange(x) 1713
truerange(x) 1522
diff(range(x)) 9204
diff(range(x)) 9354
truerange(x) 1732
truerange(x) 1593
diff(range(x)) 8833
truerange(x) 1743
diff(range(x)) 9574
diff(range(x)) 8823
diff(range(x)) 9284
truerange(x) 1893
truerange(x) 1532
diff(range(x)) 9274
truerange(x) 1953
diff(range(x)) 9064
truerange(x) 1722
diff(range(x)) 9164
diff(range(x)) 9604
truerange(x) 1713
truerange(x) 1542
diff(range(x)) 8573
truerange(x) 1703
truerange(x) 1482
truerange(x) 1693
diff(range(x)) 8873
truerange(x) 1692
diff(range(x)) 9223
truerange(x) 1763
diff(range(x)) 10015
truerange(x) 1733
truerange(x) 1772
diff(range(x)) 9114
diff(range(x)) 9144
diff(range(x)) 8953
diff(range(x)) 9274
truerange(x) 1732
truerange(x) 1482
diff(range(x)) 8913
truerange(x) 1683
truerange(x) 1602
truerange(x) 1563
truerange(x) 1472
truerange(x) 1462
truerange(x) 1472
diff(range(x)) 9555
truerange(x) 1832
truerange(x) 1692
truerange(x) 1462
diff(range(x)) 8814
truerange(x) 1682
diff(range(x)) 9164
diff(range(x)) 9113
diff(range(x)) 9455
diff(range(x)) 8723
diff(range(x)) 9343
truerange(x) 1762
diff(range(x)) 9364
diff(range(x)) 8893
truerange(x) 1712
truerange(x) 1472
diff(range(x)) 9174
truerange(x) 1723
diff(range(x)) 9534
diff(range(x)) 8883
truerange(x) 1713
diff(range(x)) 9915
diff(range(x)) 9223
diff(range(x)) 9684
truerange(x) 1703
truerange(x) 1602
truerange(x) 1623
truerange(x) 1802
truerange(x) 1483
truerange(x) 1482
truerange(x) 1602
diff(range(x)) 9404
diff(range(x)) 9465
diff(range(x)) 9894
truerange(x) 2104
truerange(x) 1492
diff(range(x)) 9073
truerange(x) 1753
diff(range(x)) 9404
truerange(x) 1713
truerange(x) 1522
diff(range(x)) 10175
truerange(x) 1703
truerange(x) 1482
truerange(x) 1593
truerange(x) 1572
truerange(x) 1773
truerange(x) 1552
truerange(x) 1443
diff(range(x)) 9634
truerange(x) 1673
diff(range(x)) 9764
diff(range(x)) 9134
truerange(x) 1682
truerange(x) 1483
truerange(x) 1482
diff(range(x)) 9684
diff(range(x)) 9084
diff(range(x)) 9094
truerange(x) 1712
truerange(x) 1502
truerange(x) 1822
truerange(x) 1483
truerange(x) 1462
diff(range(x)) 9694
truerange(x) 1683
diff(range(x)) 9164
diff(range(x)) 8833
diff(range(x)) 9384
truerange(x) 1702
diff(range(x)) 8993
diff(range(x)) 9584
truerange(x) 1733
truerange(x) 1903
truerange(x) 1482
diff(range(x)) 8563
diff(range(x)) 10155
truerange(x) 1733
diff(range(x)) 9384
truerange(x) 1712
diff(range(x)) 9224
diff(range(x)) 8994
diff(range(x)) 9694
truerange(x) 1673
diff(range(x)) 8803
diff(range(x)) 23615
diff(range(x)) 9244
truerange(x) 1772
truerange(x) 1473
diff(range(x)) 9304
diff(range(x)) 9694
truerange(x) 1813
diff(range(x)) 9564
truerange(x) 1673
truerange(x) 1602
truerange(x) 1593
diff(range(x)) 8903
truerange(x) 1823
diff(range(x)) 8803
truerange(x) 1692
truerange(x) 1482
truerange(x) 1552
diff(range(x)) 9745
truerange(x) 1692
diff(range(x)) 9014
truerange(x) 1702
diff(range(x)) 9033
diff(range(x)) 9404
truerange(x) 1703
truerange(x) 1622
diff(range(x)) 9054
truerange(x) 1732
truerange(x) 1513
truerange(x) 1522
diff(range(x)) 8993
diff(range(x)) 9104
truerange(x) 1703
diff(range(x)) 9624
diff(range(x)) 8953
diff(range(x)) 9755
diff(range(x)) 9043
truerange(x) 2163
diff(range(x)) 9234
diff(range(x)) 8783
truerange(x) 1722
truerange(x) 1533
truerange(x) 1462
diff(range(x)) 9554
diff(range(x)) 9294
truerange(x) 1783
diff(range(x)) 9113
truerange(x) 1752
diff(range(x)) 9334
truerange(x) 1733
diff(range(x)) 9264
truerange(x) 1792
diff(range(x)) 8703
truerange(x) 1693
truerange(x) 1512
diff(range(x)) 9404
diff(range(x)) 8673
diff(range(x)) 9234
diff(range(x)) 8923
diff(range(x)) 9153
truerange(x) 1733
truerange(x) 1502
truerange(x) 1623
truerange(x) 1482
diff(range(x)) 8653
diff(range(x)) 9174
diff(range(x)) 9223
diff(range(x)) 9194
diff(range(x)) 9264
truerange(x) 1763
diff(range(x)) 9554
truerange(x) 1763
truerange(x) 1602
truerange(x) 1613
truerange(x) 1452
truerange(x) 1592
truerange(x) 1483
truerange(x) 1462
diff(range(x)) 9444
diff(range(x)) 9214
diff(range(x)) 9003
diff(range(x)) 9204
truerange(x) 1723
diff(range(x)) 9834
truerange(x) 1833
diff(range(x)) 9624
diff(range(x)) 9895
diff(range(x)) 9735
truerange(x) 1853
truerange(x) 1552
truerange(x) 1432
diff(range(x)) 9645
diff(range(x)) 10135
truerange(x) 1772
truerange(x) 1443
truerange(x) 1452
diff(range(x)) 9314
diff(range(x)) 10005
truerange(x) 1752
truerange(x) 1493
truerange(x) 1472
truerange(x) 1432
diff(range(x)) 9615
truerange(x) 1792
truerange(x) 1573
diff(range(x)) 9514
diff(range(x)) 9284
truerange(x) 1703
diff(range(x)) 9243
truerange(x) 1723
truerange(x) 1472
truerange(x) 1473
truerange(x) 1442
diff(range(x)) 10475
truerange(x) 1723
truerange(x) 1452
diff(range(x)) 9324
diff(range(x)) 9575
truerange(x) 1702
truerange(x) 1873
diff(range(x)) 9114
diff(range(x)) 9344
diff(range(x)) 9554
diff(range(x)) 8933
diff(range(x)) 8763
truerange(x) 1733
truerange(x) 1482
truerange(x) 1763
diff(range(x)) 9975
truerange(x) 2033
truerange(x) 1612
truerange(x) 1532
diff(range(x)) 9324
diff(range(x)) 9644
truerange(x) 1723
truerange(x) 1472
diff(range(x)) 9074
diff(range(x)) 8783
diff(range(x)) 8893
diff(range(x)) 9584
truerange(x) 1873
diff(range(x)) 9434
truerange(x) 1723
truerange(x) 1512
truerange(x) 1463
diff(range(x)) 9063
truerange(x) 1693
diff(range(x)) 9604
diff(range(x)) 8933
truerange(x) 1703
diff(range(x)) 9434
truerange(x) 1723
diff(range(x)) 9654
diff(range(x)) 8793
truerange(x) 1703
diff(range(x)) 9514
diff(range(x)) 9334
diff(range(x)) 8823
truerange(x) 1713
diff(range(x)) 8823
truerange(x) 1713
diff(range(x)) 9113
diff(range(x)) 8944
truerange(x) 1853
diff(range(x)) 9163
truerange(x) 1723
diff(range(x)) 9624
diff(range(x)) 9014
diff(range(x)) 9654
truerange(x) 1693
diff(range(x)) 9574
truerange(x) 1693
diff(range(x)) 8542
diff(range(x)) 9174
truerange(x) 1683
diff(range(x)) 9254
truerange(x) 1702
diff(range(x)) 19840
diff(range(x)) 9023
diff(range(x)) 9615
diff(range(x)) 8793
diff(range(x)) 8983
diff(range(x)) 8984
diff(range(x)) 9374
diff(range(x)) 9464
diff(range(x)) 9284
diff(range(x)) 9183
truerange(x) 1863
truerange(x) 1593
truerange(x) 1582
truerange(x) 1482
truerange(x) 1573
diff(range(x)) 9003
truerange(x) 1733
diff(range(x)) 9394
truerange(x) 1763
truerange(x) 1532
truerange(x) 1502
truerange(x) 1453
truerange(x) 1442
truerange(x) 1462
truerange(x) 1482
truerange(x) 1493
diff(range(x)) 8793
diff(range(x)) 9444
diff(range(x)) 10636
diff(range(x)) 8993
diff(range(x)) 8613
diff(range(x)) 9204
truerange(x) 1733
truerange(x) 1492
diff(range(x)) 8833
truerange(x) 1703
truerange(x) 1492
diff(range(x)) 9124
truerange(x) 1923
diff(range(x)) 9864
diff(range(x)) 9254
diff(range(x)) 9224
truerange(x) 1803
diff(range(x)) 9454
diff(range(x)) 9114
diff(range(x)) 8763
truerange(x) 1752
truerange(x) 1523
truerange(x) 1602
diff(range(x)) 9474
truerange(x) 1723
diff(range(x)) 9394
diff(range(x)) 8793
diff(range(x)) 9645
truerange(x) 1712
diff(range(x)) 9054
truerange(x) 1722
diff(range(x)) 8844
truerange(x) 1712
truerange(x) 1833
truerange(x) 1472
diff(range(x)) 9014
diff(range(x)) 9083
diff(range(x)) 9184
truerange(x) 2043
diff(range(x)) 8883
truerange(x) 1702
truerange(x) 1492
truerange(x) 1453
truerange(x) 1612
truerange(x) 1502
truerange(x) 1583
diff(range(x)) 8763
diff(range(x)) 9214
truerange(x) 1772
diff(range(x)) 9534
diff(range(x)) 9213
truerange(x) 1733
truerange(x) 1502
truerange(x) 1582
diff(range(x)) 9184
diff(range(x)) 10866
truerange(x) 2053
diff(range(x)) 9054
diff(range(x)) 8973
truerange(x) 1703
truerange(x) 1522
truerange(x) 1542
diff(range(x)) 9374
diff(range(x)) 9124
truerange(x) 1803
truerange(x) 1512
truerange(x) 1552
diff(range(x)) 8723
truerange(x) 1712
diff(range(x)) 10025
diff(range(x)) 8973
truerange(x) 1692
diff(range(x)) 9084
diff(range(x)) 9073
truerange(x) 1693
diff(range(x)) 9073
diff(range(x)) 9785
diff(range(x)) 9524
truerange(x) 1713
diff(range(x)) 9143
diff(range(x)) 9163
diff(range(x)) 9294
truerange(x) 1723
truerange(x) 1562
diff(range(x)) 9374
truerange(x) 2023
diff(range(x)) 9044
diff(range(x)) 8963
diff(range(x)) 8743
truerange(x) 1903
truerange(x) 1883
truerange(x) 1673
diff(range(x)) 9344
diff(range(x)) 10545
truerange(x) 1813
truerange(x) 1542
diff(range(x)) 9343
truerange(x) 1753
diff(range(x)) 9164
diff(range(x)) 9324
truerange(x) 1702
diff(range(x)) 8954
diff(range(x)) 9244
truerange(x) 1842
diff(range(x)) 9475
truerange(x) 1732
truerange(x) 1523
truerange(x) 1572
truerange(x) 1482
truerange(x) 1443
diff(range(x)) 9073
diff(range(x)) 8943
truerange(x) 1872
diff(range(x)) 9204
diff(range(x)) 8933
diff(range(x)) 9133
diff(range(x)) 9344
truerange(x) 1843
truerange(x) 1692
diff(range(x)) 9103
truerange(x) 1723
truerange(x) 1472
diff(range(x)) 9214
truerange(x) 1702
diff(range(x)) 9144
diff(range(x)) 9264
diff(range(x)) 8623
truerange(x) 1863
diff(range(x)) 9093
diff(range(x)) 9474
truerange(x) 1753
diff(range(x)) 8663
diff(range(x)) 9504
truerange(x) 1703
truerange(x) 1622
truerange(x) 1503
diff(range(x)) 9374
truerange(x) 1702
truerange(x) 1613
diff(range(x)) 9454
diff(range(x)) 9094
diff(range(x)) 8913
diff(range(x)) 9804
truerange(x) 1742
truerange(x) 1472
diff(range(x)) 9074
diff(range(x)) 8873
diff(range(x)) 19399
truerange(x) 1743
truerange(x) 1522
diff(range(x)) 9554
truerange(x) 1743
truerange(x) 1623
truerange(x) 1812
truerange(x) 1453
diff(range(x)) 9173
truerange(x) 1723
diff(range(x)) 9304
truerange(x) 1692
diff(range(x)) 9393
truerange(x) 1712
truerange(x) 1553
truerange(x) 1562
diff(range(x)) 9184
diff(range(x)) 9143
truerange(x) 1713
diff(range(x)) 9224
diff(range(x)) 9043
truerange(x) 1763
diff(range(x)) 9144
diff(range(x)) 9183
truerange(x) 1953
truerange(x) 1593
truerange(x) 1702
diff(range(x)) 8884
diff(range(x)) 8903
truerange(x) 1693
truerange(x) 1482
diff(range(x)) 9294
truerange(x) 1712
diff(range(x)) 9314
diff(range(x)) 9164
truerange(x) 1703
truerange(x) 1632
truerange(x) 1593
diff(range(x)) 9243
diff(range(x)) 9755
diff(range(x)) 8963
truerange(x) 1743
diff(range(x)) 8863
truerange(x) 1703
diff(range(x)) 9204
truerange(x) 1732
diff(range(x)) 8884
truerange(x) 1822
diff(range(x)) 8824
truerange(x) 1692
truerange(x) 1543
truerange(x) 1492
diff(range(x)) 9164
diff(range(x)) 9253
truerange(x) 1963
diff(range(x)) 9695
truerange(x) 1692
diff(range(x)) 9674
truerange(x) 1703
diff(range(x)) 8723
diff(range(x)) 9063
truerange(x) 1833
truerange(x) 1632
truerange(x) 1593
diff(range(x)) 9424
truerange(x) 1693
truerange(x) 1622
truerange(x) 1663
truerange(x) 1492
diff(range(x)) 9314
truerange(x) 1983
diff(range(x)) 9033
diff(range(x)) 8863
truerange(x) 1703
truerange(x) 1512
truerange(x) 1562
diff(range(x)) 9084
truerange(x) 1713
diff(range(x)) 8903
diff(range(x)) 8923
diff(range(x)) 10035
diff(range(x)) 9695
diff(range(x)) 9163
truerange(x) 1723
truerange(x) 1502
truerange(x) 1513
truerange(x) 1462
truerange(x) 1703
diff(range(x)) 9253
diff(range(x)) 9204
diff(range(x)) 9174
truerange(x) 1753
truerange(x) 1732
diff(range(x)) 9064
truerange(x) 1702
truerange(x) 1463
truerange(x) 1452
diff(range(x)) 9524
truerange(x) 1713
diff(range(x)) 9654
diff(range(x)) 9615
diff(range(x)) 9163
diff(range(x)) 9094
diff(range(x)) 9564
diff(range(x)) 9845
diff(range(x)) 9113
diff(range(x)) 9383
truerange(x) 1722
diff(range(x)) 9645
diff(range(x)) 9384
diff(range(x)) 9464
truerange(x) 2003
diff(range(x)) 9344
truerange(x) 2083
truerange(x) 1983
truerange(x) 1583
diff(range(x)) 9154
truerange(x) 2023
truerange(x) 1562
truerange(x) 1592
truerange(x) 1442
diff(range(x)) 8753
truerange(x) 1692
truerange(x) 1813
diff(range(x)) 9304
diff(range(x)) 9054
truerange(x) 1722
truerange(x) 1452
truerange(x) 1432
truerange(x) 1452
truerange(x) 1512
truerange(x) 1463
diff(range(x)) 8933
truerange(x) 1763
truerange(x) 1612
truerange(x) 1542
diff(range(x)) 9103
diff(range(x)) 8933
truerange(x) 1933
diff(range(x)) 9214
truerange(x) 1683
truerange(x) 1612
truerange(x) 1583
diff(range(x)) 9604
truerange(x) 1723
truerange(x) 1462
diff(range(x)) 9454
truerange(x) 1693
truerange(x) 1562
truerange(x) 1512
diff(range(x)) 9103
truerange(x) 1893
diff(range(x)) 9424
diff(range(x)) 9825
diff(range(x)) 9073
truerange(x) 1743
truerange(x) 1653
diff(range(x)) 9444
truerange(x) 1722
diff(range(x)) 9655
diff(range(x)) 9814
diff(range(x)) 10817
truerange(x) 1712
diff(range(x)) 9524
diff(range(x)) 9174
truerange(x) 1733
diff(range(x)) 9093
truerange(x) 1693
diff(range(x)) 8973
diff(range(x)) 9024
diff(range(x)) 10115
truerange(x) 2313
diff(range(x)) 8783
diff(range(x)) 8983
diff(range(x)) 9224
diff(range(x)) 8783
diff(range(x)) 9334
diff(range(x)) 10646
diff(range(x)) 9113
diff(range(x)) 9174
truerange(x) 2424
truerange(x) 1502
diff(range(x)) 19499
truerange(x) 2083
diff(range(x)) 9835
diff(range(x)) 9214
truerange(x) 1712
diff(range(x)) 9004
diff(range(x)) 9444
diff(range(x)) 8943
truerange(x) 1763
truerange(x) 1492
truerange(x) 1483
truerange(x) 1472
truerange(x) 1442
truerange(x) 1522
diff(range(x)) 9475
diff(range(x)) 9894
diff(range(x)) 10035
diff(range(x)) 9434
truerange(x) 1843
truerange(x) 1513
truerange(x) 1452
diff(range(x)) 10876
diff(range(x)) 10325
diff(range(x)) 9414
diff(range(x)) 9013
truerange(x) 1743
diff(range(x)) 8843
truerange(x) 1702
diff(range(x)) 9414
diff(range(x)) 9083
diff(range(x)) 9654
diff(range(x)) 9505
diff(range(x)) 9143
diff(range(x)) 9204
truerange(x) 1773
truerange(x) 1462
truerange(x) 1582
diff(range(x)) 10175
diff(range(x)) 9063
truerange(x) 1973
truerange(x) 1493
truerange(x) 1462
diff(range(x)) 8853
diff(range(x)) 9765
diff(range(x)) 9243
diff(range(x)) 9154
truerange(x) 1733
truerange(x) 1552
truerange(x) 1623
diff(range(x)) 8963
truerange(x) 1713
diff(range(x)) 9514
truerange(x) 1723
truerange(x) 1492
diff(range(x)) 8823
truerange(x) 1953
truerange(x) 1482
diff(range(x)) 9214
truerange(x) 1693
diff(range(x)) 10165
truerange(x) 1692
diff(range(x)) 9373
truerange(x) 1762
truerange(x) 1472
diff(range(x)) 8783
truerange(x) 1712
diff(range(x)) 9334
diff(range(x)) 9414
diff(range(x)) 9334
diff(range(x)) 8934
diff(range(x)) 9394
diff(range(x)) 8793
truerange(x) 1722
truerange(x) 1503
diff(range(x)) 8833
diff(range(x)) 9514
diff(range(x)) 8863
truerange(x) 1983
diff(range(x)) 8974
truerange(x) 1772
truerange(x) 1502
diff(range(x)) 9264
diff(range(x)) 8903
diff(range(x)) 9755
diff(range(x)) 8943
diff(range(x)) 9204
truerange(x) 1763
truerange(x) 1622
truerange(x) 1683
truerange(x) 1502
truerange(x) 1432
truerange(x) 1573
diff(range(x)) 8993
diff(range(x)) 9134
diff(range(x)) 9784
diff(range(x)) 9495
truerange(x) 1772
truerange(x) 1463
diff(range(x)) 9303
diff(range(x)) 8884
truerange(x) 1762
truerange(x) 1503
truerange(x) 2143
truerange(x) 1572
truerange(x) 1452
diff(range(x)) 8753
truerange(x) 1742
diff(range(x)) 9384
diff(range(x)) 9474
diff(range(x)) 9003
truerange(x) 1753
truerange(x) 1472
diff(range(x)) 9644
truerange(x) 1942
truerange(x) 1582
diff(range(x)) 9494
truerange(x) 1783
truerange(x) 1492
diff(range(x)) 9835
diff(range(x)) 8953
truerange(x) 1773
diff(range(x)) 9074
truerange(x) 1732
truerange(x) 1513
diff(range(x)) 10625
truerange(x) 1693
diff(range(x)) 9624
diff(range(x)) 10626
truerange(x) 1713
truerange(x) 1612
diff(range(x)) 9324
truerange(x) 1743
truerange(x) 1502
diff(range(x)) 8884
diff(range(x)) 9043
diff(range(x)) 9594
diff(range(x)) 9805
truerange(x) 1733
truerange(x) 1512
truerange(x) 1803
truerange(x) 1552
truerange(x) 1542
diff(range(x)) 9674
diff(range(x)) 9254
diff(range(x)) 9143
truerange(x) 2034
truerange(x) 1572
diff(range(x)) 9704
truerange(x) 1692
truerange(x) 1532
diff(range(x)) 9635
truerange(x) 1712
diff(range(x)) 8854
diff(range(x)) 9654
truerange(x) 1713
diff(range(x)) 9334
truerange(x) 1702
truerange(x) 1603
truerange(x) 1462
truerange(x) 1442
truerange(x) 1463
diff(range(x)) 9244
diff(range(x)) 9664
truerange(x) 2173
truerange(x) 1783
truerange(x) 1532
diff(range(x)) 8844
truerange(x) 2013
diff(range(x)) 9213
truerange(x) 1732
truerange(x) 1523
truerange(x) 1462
diff(range(x)) 9895
truerange(x) 1692
diff(range(x)) 9454
truerange(x) 1703
diff(range(x)) 8873
diff(range(x)) 9094
truerange(x) 1673
diff(range(x)) 9123
diff(range(x)) 19429
diff(range(x)) 9905
truerange(x) 1743
truerange(x) 1822
diff(range(x)) 9725
truerange(x) 1722
diff(range(x)) 9023
truerange(x) 1833
truerange(x) 1492
diff(range(x)) 8984
diff(range(x)) 9113
truerange(x) 1683
truerange(x) 1502
truerange(x) 1643
truerange(x) 1552

bmi3, bmi4

It isn’t hard to create body mass index (BMI) groups from continuous BMI values, but it is hard to remember how BMI values on the cutpoints get classified. The cutpoints according to the CDC are:

BMI values Classification
< 18.5 Underweight
[18.5, 25) Normal weight
[25, 30) Overweight
>= 30 Obese

The function bmi3 creates 3 groups (lumping the first two above into “Normal weight”), while bmi4 creates 4 groups. Both return factor variables, with or without labels depending on labels.

bmi <- round(runif(100, min = 15, max = 45), 1)
table(bmi3(bmi))
Normal weight Overweight Obese
32 21 47
table(bmi4(bmi, labels = FALSE))
[-Inf,18.5) [18.5,25) [25,30) [30, Inf)
8 24 21 47

sumsim

This function creates tables summarizing results of statistical simulations, providing common metrics of performance like mean bias, standard deviation, mean standard error, mean squared error, and confidence interval coverage.

To illustrate, suppose \(X_1, ..., X_n \sim N(\mu, \sigma^2)\), and we wish to compare two estimators for \(\sigma^2\): the MLE (\(n\) in denominator) vs. the sample variance (\(n-1\) in denominator).

MLE <- c()
s2 <- c()
for (ii in 1: 1000) {
   x <- rnorm(n = 25)
   MLE[ii] <- sum((x - mean(x))^2) / 25
   s2[ii] <- sum((x - mean(x))^2) / 24
 }
kable(sumsim(estimates = cbind(MLE, s2), truth = 1))
Mean bias SD MSE
MLE -0.053 0.280 0.081
s2 -0.013 0.292 0.085

You can request different performance metrics through the statistics input; some of them, like confidence interval coverage, require specifying ses with standard errors.

Moving window statistics

moving_mean

The function moving_mean is one of dozens of moving average functions available in R. I’m not sure it’s the absolute fastest, but it is much faster than roll_mean in RcppRoll.

library("RcppRoll")

lengths <- c(10, 100, 1000, 10000)
multiples1 <- multiples2 <- c()
for (ii in 1: 4) {
  n <- lengths[ii]
  x <- rnorm(n)
  medians <- summary(microbenchmark(roll_mean(x, 5), moving_mean(x, 5),
                                    roll_mean(x, n / 5), moving_mean(x, n / 5),
                                    times = 50))$median
  multiples1[ii] <- medians[1] / medians[2]
  multiples2[ii] <- medians[3] / medians[4]
}
par(mfrow = c(1, 2))
plot(1: 4, multiples1, type = "b", col = "blue", main = "5-unit MA", 
     ylab = "Speed multiple", xlab = "Vector length", xaxt = "n", 
     ylim = c(0, max(multiples1) * 1.05))
axis(side = 1, at = 1: 4, labels = lengths)
abline(h = 1)

plot(1: 4, multiples2, type = "b", col = "blue", main = "length(x)/5-unit MA", 
     ylab = "Speed multiple", xlab = "Vector length", xaxt = "n", 
     ylim = c(0, max(multiples2) * 1.05))
axis(side = 1, at = 1: 4, labels = lengths)
abline(h = 1)

Graphics

histo

This function is similar to the base R function hist, but with two added features:

  1. Can overlay one or more fitted probability density/mass functions (PDFs/PMFs) for any univariate distribution supported in R (see ?Distributions).

  2. Can generate more of a barplot type histogram, where each possible value gets its own bin centered over its value (useful for discrete variables with not too many possible values).

Here are two examples:

# Histogram for 1,000 values from Bin(8, 0.25)
x <- rbinom(n = 1000, size = 5, prob = 0.25)
histo(x, dis = "binom", size = 5, colors = "blue", points_list = list(type = "b"))


# Histogram for 10,000 values from lognormal(0, 0.35) and various fitted PDFs.
x <- rlnorm(n = 10000, meanlog = 0, sdlog = 0.35)
histo(x, c("lnorm", "norm", "gamma"), main = "X ~ Lognormal(0, 0.35)")

References

Eddelbuettel, Dirk. 2013. Seamless R and C++ Integration with Rcpp. Springer. https://doi.org/10.1007/978-1-4614-6868-4.
Eddelbuettel, Dirk, and James Joseph Balamuta. 2017. Extending extitR with extitC++: A Brief Introduction to extitRcpp.” PeerJ Preprints 5 (August): e3188v1. https://doi.org/10.7287/peerj.preprints.3188v1.
Eddelbuettel, Dirk, and Romain François. 2011. Rcpp: Seamless R and C++ Integration.” Journal of Statistical Software 40 (8): 1–18. https://doi.org/10.18637/jss.v040.i08.
Ushey, Kevin. 2015. RcppRoll: Efficient Rolling / Windowed Operations. https://CRAN.R-project.org/package=RcppRoll.
Xie, Yihui. 2017. Printr: Automatically Print r Objects to Appropriate Formats According to the ’Knitr’ Output Format. https://CRAN.R-project.org/package=printr.