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.382 8.8585 9.325148 9.0535 9.294 44.887   500
#>    truerange(x) 1.402 1.5020 1.670606 1.6920 1.733 12.438   500
expr time
diff(range(x)) 44887
diff(range(x)) 13089
diff(range(x)) 10146
truerange(x) 12438
truerange(x) 1853
diff(range(x)) 20010
diff(range(x)) 10035
diff(range(x)) 9594
truerange(x) 2224
diff(range(x)) 9103
diff(range(x)) 9054
diff(range(x)) 9584
truerange(x) 1813
truerange(x) 1522
diff(range(x)) 8794
truerange(x) 1802
diff(range(x)) 9605
truerange(x) 1742
truerange(x) 1663
truerange(x) 1643
truerange(x) 1452
diff(range(x)) 9374
diff(range(x)) 9524
diff(range(x)) 8763
truerange(x) 1743
diff(range(x)) 9033
truerange(x) 1693
diff(range(x)) 9524
truerange(x) 1713
truerange(x) 1522
diff(range(x)) 8773
diff(range(x)) 9183
truerange(x) 1673
diff(range(x)) 10365
truerange(x) 1723
diff(range(x)) 9013
diff(range(x)) 9734
diff(range(x)) 9244
truerange(x) 1683
truerange(x) 1472
diff(range(x)) 8933
truerange(x) 1913
diff(range(x)) 9064
truerange(x) 1702
truerange(x) 1493
truerange(x) 1492
truerange(x) 1472
diff(range(x)) 9264
diff(range(x)) 9484
diff(range(x)) 10396
diff(range(x)) 8973
truerange(x) 1963
truerange(x) 1563
truerange(x) 1502
truerange(x) 1452
diff(range(x)) 9204
truerange(x) 1703
diff(range(x)) 8903
diff(range(x)) 8803
diff(range(x)) 9214
truerange(x) 1713
diff(range(x)) 9073
truerange(x) 1843
diff(range(x)) 8964
truerange(x) 1722
diff(range(x)) 13150
diff(range(x)) 9284
diff(range(x)) 9424
diff(range(x)) 10015
diff(range(x)) 9374
truerange(x) 1883
truerange(x) 1672
truerange(x) 1742
diff(range(x)) 8823
diff(range(x)) 9034
truerange(x) 1763
diff(range(x)) 9314
truerange(x) 1702
diff(range(x)) 9294
diff(range(x)) 8913
truerange(x) 1722
diff(range(x)) 8934
diff(range(x)) 9273
diff(range(x)) 8844
truerange(x) 1772
diff(range(x)) 10075
truerange(x) 2073
diff(range(x)) 9424
diff(range(x)) 9033
truerange(x) 1733
truerange(x) 1492
diff(range(x)) 9374
diff(range(x)) 9204
diff(range(x)) 10566
truerange(x) 1723
diff(range(x)) 9053
truerange(x) 1683
truerange(x) 1572
diff(range(x)) 9334
truerange(x) 1693
truerange(x) 1532
truerange(x) 1482
truerange(x) 1492
truerange(x) 1682
truerange(x) 1483
truerange(x) 1452
diff(range(x)) 9384
truerange(x) 1823
diff(range(x)) 11938
diff(range(x)) 9754
diff(range(x)) 9464
truerange(x) 1732
diff(range(x)) 9494
diff(range(x)) 9445
diff(range(x)) 8773
diff(range(x)) 9203
truerange(x) 1752
diff(range(x)) 9194
truerange(x) 1863
diff(range(x)) 8623
truerange(x) 1732
truerange(x) 1643
diff(range(x)) 9654
diff(range(x)) 9084
diff(range(x)) 9865
truerange(x) 1732
truerange(x) 1482
truerange(x) 1472
truerange(x) 1472
diff(range(x)) 9304
truerange(x) 1943
diff(range(x)) 9615
truerange(x) 1712
truerange(x) 1493
truerange(x) 1462
diff(range(x)) 9204
diff(range(x)) 9394
diff(range(x)) 9063
diff(range(x)) 9104
diff(range(x)) 8773
diff(range(x)) 9915
diff(range(x)) 9294
truerange(x) 1943
diff(range(x)) 9695
truerange(x) 1863
truerange(x) 1592
diff(range(x)) 9414
diff(range(x)) 8954
truerange(x) 1732
truerange(x) 1763
diff(range(x)) 9444
truerange(x) 1893
diff(range(x)) 10165
diff(range(x)) 10937
diff(range(x)) 9173
truerange(x) 1733
truerange(x) 1522
diff(range(x)) 8894
truerange(x) 1813
diff(range(x)) 9193
truerange(x) 1793
diff(range(x)) 8883
diff(range(x)) 8964
truerange(x) 1732
truerange(x) 1623
diff(range(x)) 8983
truerange(x) 1693
truerange(x) 1583
truerange(x) 1482
diff(range(x)) 8843
truerange(x) 2023
diff(range(x)) 9194
truerange(x) 1703
diff(range(x)) 8883
truerange(x) 1693
truerange(x) 1702
diff(range(x)) 9054
diff(range(x)) 19238
diff(range(x)) 8914
diff(range(x)) 8573
truerange(x) 1973
truerange(x) 1692
diff(range(x)) 9655
truerange(x) 2143
truerange(x) 1512
truerange(x) 1593
truerange(x) 1482
truerange(x) 1683
truerange(x) 1442
diff(range(x)) 8723
truerange(x) 1753
truerange(x) 1592
truerange(x) 1503
diff(range(x)) 9053
truerange(x) 1743
diff(range(x)) 9113
diff(range(x)) 9313
diff(range(x)) 9144
diff(range(x)) 9424
diff(range(x)) 8633
truerange(x) 1883
diff(range(x)) 9564
diff(range(x)) 8914
truerange(x) 1742
truerange(x) 1533
diff(range(x)) 8753
truerange(x) 1713
diff(range(x)) 9023
diff(range(x)) 9204
truerange(x) 1722
diff(range(x)) 9854
diff(range(x)) 9254
diff(range(x)) 9264
truerange(x) 1703
truerange(x) 1482
truerange(x) 1512
truerange(x) 1453
truerange(x) 1472
truerange(x) 1402
truerange(x) 1442
diff(range(x)) 9204
diff(range(x)) 8763
diff(range(x)) 9064
truerange(x) 1712
truerange(x) 1583
diff(range(x)) 9053
truerange(x) 1763
diff(range(x)) 9084
truerange(x) 1752
truerange(x) 1602
diff(range(x)) 9194
truerange(x) 1722
truerange(x) 1483
truerange(x) 1472
truerange(x) 1452
truerange(x) 1453
truerange(x) 1802
truerange(x) 1493
diff(range(x)) 9083
truerange(x) 1703
diff(range(x)) 10195
diff(range(x)) 9955
truerange(x) 1682
truerange(x) 1603
truerange(x) 1482
diff(range(x)) 8703
diff(range(x)) 9474
diff(range(x)) 8763
truerange(x) 1723
truerange(x) 1502
truerange(x) 1483
truerange(x) 1472
truerange(x) 1462
diff(range(x)) 9084
truerange(x) 1732
diff(range(x)) 8713
diff(range(x)) 9223
diff(range(x)) 9094
truerange(x) 1813
diff(range(x)) 9023
diff(range(x)) 9805
truerange(x) 1763
truerange(x) 1592
truerange(x) 1533
diff(range(x)) 9233
diff(range(x)) 8673
truerange(x) 1893
diff(range(x)) 9765
truerange(x) 1723
diff(range(x)) 8863
diff(range(x)) 8913
diff(range(x)) 9064
truerange(x) 1772
diff(range(x)) 9954
diff(range(x)) 8884
diff(range(x)) 8893
truerange(x) 1733
truerange(x) 1582
diff(range(x)) 9074
diff(range(x)) 8703
truerange(x) 1722
diff(range(x)) 9163
truerange(x) 1703
truerange(x) 1532
truerange(x) 1493
diff(range(x)) 9384
truerange(x) 1923
diff(range(x)) 8873
truerange(x) 1853
truerange(x) 1622
truerange(x) 1513
diff(range(x)) 9143
truerange(x) 1733
diff(range(x)) 9244
truerange(x) 1702
diff(range(x)) 9034
diff(range(x)) 8993
truerange(x) 1723
truerange(x) 1492
diff(range(x)) 9274
truerange(x) 1693
truerange(x) 1502
truerange(x) 1453
diff(range(x)) 9153
diff(range(x)) 9855
truerange(x) 1713
diff(range(x)) 8783
diff(range(x)) 8973
diff(range(x)) 8483
diff(range(x)) 8953
truerange(x) 1713
diff(range(x)) 9344
diff(range(x)) 9244
truerange(x) 1712
truerange(x) 1742
truerange(x) 1523
diff(range(x)) 8833
diff(range(x)) 9764
truerange(x) 1713
diff(range(x)) 9024
truerange(x) 1702
diff(range(x)) 9004
truerange(x) 1672
diff(range(x)) 9114
truerange(x) 1733
diff(range(x)) 9003
truerange(x) 1723
truerange(x) 1512
diff(range(x)) 9004
diff(range(x)) 8913
diff(range(x)) 8923
diff(range(x)) 9034
diff(range(x)) 8893
truerange(x) 1903
truerange(x) 1502
truerange(x) 1473
truerange(x) 1482
diff(range(x)) 9064
diff(range(x)) 8803
diff(range(x)) 9774
diff(range(x)) 8924
diff(range(x)) 10095
truerange(x) 1943
diff(range(x)) 8703
truerange(x) 1753
truerange(x) 1552
truerange(x) 1492
truerange(x) 1453
truerange(x) 1482
truerange(x) 1452
truerange(x) 1442
diff(range(x)) 8954
diff(range(x)) 9284
diff(range(x)) 8923
diff(range(x)) 8843
truerange(x) 1723
diff(range(x)) 8853
truerange(x) 1793
diff(range(x)) 9284
diff(range(x)) 9134
diff(range(x)) 9063
truerange(x) 1723
truerange(x) 1552
truerange(x) 1473
diff(range(x)) 19338
diff(range(x)) 9665
truerange(x) 1773
truerange(x) 1532
truerange(x) 1482
diff(range(x)) 9024
diff(range(x)) 9244
truerange(x) 1762
truerange(x) 1903
truerange(x) 1563
truerange(x) 1762
diff(range(x)) 8813
truerange(x) 1732
truerange(x) 1513
diff(range(x)) 8993
diff(range(x)) 9234
truerange(x) 1723
diff(range(x)) 8833
truerange(x) 1753
truerange(x) 1582
truerange(x) 1462
truerange(x) 1473
diff(range(x)) 8422
truerange(x) 1743
truerange(x) 1462
diff(range(x)) 8884
diff(range(x)) 8673
truerange(x) 1732
truerange(x) 1452
diff(range(x)) 8833
diff(range(x)) 9674
diff(range(x)) 9334
diff(range(x)) 9054
diff(range(x)) 9424
truerange(x) 1823
truerange(x) 1622
truerange(x) 1502
diff(range(x)) 8462
truerange(x) 1743
truerange(x) 1532
truerange(x) 1432
diff(range(x)) 8893
diff(range(x)) 9194
truerange(x) 1742
truerange(x) 1483
diff(range(x)) 9223
diff(range(x)) 9354
diff(range(x)) 9354
diff(range(x)) 8994
truerange(x) 1773
diff(range(x)) 9263
truerange(x) 1682
truerange(x) 1542
truerange(x) 1452
diff(range(x)) 9624
truerange(x) 1713
diff(range(x)) 9274
diff(range(x)) 8993
truerange(x) 1713
diff(range(x)) 8883
truerange(x) 1703
diff(range(x)) 9053
diff(range(x)) 8914
truerange(x) 1762
diff(range(x)) 8683
diff(range(x)) 9144
diff(range(x)) 8733
truerange(x) 1713
diff(range(x)) 9154
truerange(x) 1702
diff(range(x)) 9324
diff(range(x)) 8883
truerange(x) 1733
diff(range(x)) 8683
truerange(x) 1683
diff(range(x)) 10535
diff(range(x)) 9394
diff(range(x)) 9183
truerange(x) 1853
diff(range(x)) 9214
truerange(x) 1743
diff(range(x)) 8492
diff(range(x)) 9064
truerange(x) 1753
diff(range(x)) 8933
truerange(x) 1713
diff(range(x)) 8913
diff(range(x)) 9064
diff(range(x)) 9053
diff(range(x)) 8863
diff(range(x)) 9524
diff(range(x)) 9053
diff(range(x)) 8663
diff(range(x)) 9294
diff(range(x)) 8954
diff(range(x)) 8773
truerange(x) 1983
truerange(x) 1532
truerange(x) 1523
truerange(x) 1492
truerange(x) 1642
diff(range(x)) 9063
truerange(x) 1743
diff(range(x)) 9374
truerange(x) 1692
truerange(x) 1513
truerange(x) 1482
truerange(x) 1482
truerange(x) 1443
truerange(x) 1462
truerange(x) 1452
truerange(x) 1442
diff(range(x)) 8994
diff(range(x)) 9143
diff(range(x)) 8552
diff(range(x)) 9454
diff(range(x)) 9323
diff(range(x)) 8523
truerange(x) 1863
truerange(x) 1472
diff(range(x)) 9455
truerange(x) 1722
truerange(x) 1482
diff(range(x)) 9934
truerange(x) 1703
diff(range(x)) 8703
diff(range(x)) 9104
diff(range(x)) 9063
truerange(x) 1803
diff(range(x)) 8593
diff(range(x)) 8783
diff(range(x)) 9564
truerange(x) 1713
truerange(x) 1592
truerange(x) 1502
diff(range(x)) 8713
truerange(x) 1702
diff(range(x)) 9003
diff(range(x)) 9374
diff(range(x)) 8763
truerange(x) 1733
diff(range(x)) 8893
truerange(x) 1713
diff(range(x)) 8953
truerange(x) 1703
truerange(x) 1522
truerange(x) 1523
diff(range(x)) 9614
diff(range(x)) 8713
diff(range(x)) 9154
truerange(x) 1742
diff(range(x)) 8593
truerange(x) 2013
truerange(x) 1533
truerange(x) 1452
truerange(x) 1462
truerange(x) 1443
truerange(x) 1432
diff(range(x)) 8903
diff(range(x)) 9234
truerange(x) 1743
diff(range(x)) 9554
diff(range(x)) 8973
truerange(x) 1853
truerange(x) 1493
truerange(x) 1462
diff(range(x)) 8763
diff(range(x)) 9684
truerange(x) 1722
diff(range(x)) 8603
diff(range(x)) 10155
truerange(x) 1903
truerange(x) 1673
truerange(x) 1472
diff(range(x)) 8964
diff(range(x)) 9604
truerange(x) 1703
truerange(x) 1522
truerange(x) 1482
diff(range(x)) 8713
truerange(x) 1953
diff(range(x)) 8693
diff(range(x)) 19790
truerange(x) 1722
diff(range(x)) 8873
diff(range(x)) 8953
truerange(x) 1833
diff(range(x)) 8793
diff(range(x)) 9284
diff(range(x)) 8933
truerange(x) 1712
diff(range(x)) 9044
diff(range(x)) 8943
diff(range(x)) 8853
truerange(x) 1753
truerange(x) 1522
diff(range(x)) 8894
truerange(x) 1732
diff(range(x)) 9114
diff(range(x)) 9314
diff(range(x)) 9204
truerange(x) 1712
truerange(x) 1593
truerange(x) 1622
diff(range(x)) 9555
diff(range(x)) 10726
truerange(x) 1722
truerange(x) 1503
diff(range(x)) 9103
truerange(x) 1843
diff(range(x)) 9825
diff(range(x)) 8903
truerange(x) 1763
diff(range(x)) 9644
diff(range(x)) 9123
truerange(x) 1813
diff(range(x)) 8733
truerange(x) 1703
truerange(x) 1572
truerange(x) 1462
truerange(x) 1573
truerange(x) 1702
diff(range(x)) 8824
diff(range(x)) 8993
truerange(x) 1703
diff(range(x)) 8863
diff(range(x)) 9314
diff(range(x)) 8833
diff(range(x)) 8623
truerange(x) 1983
truerange(x) 1603
diff(range(x)) 9213
truerange(x) 1702
truerange(x) 1472
diff(range(x)) 9184
truerange(x) 1703
diff(range(x)) 9444
diff(range(x)) 8613
diff(range(x)) 8963
truerange(x) 1763
diff(range(x)) 8863
diff(range(x)) 8793
truerange(x) 1802
diff(range(x)) 8813
diff(range(x)) 8814
truerange(x) 1883
truerange(x) 1712
truerange(x) 1573
diff(range(x)) 8603
truerange(x) 1692
truerange(x) 1492
diff(range(x)) 8692
diff(range(x)) 8933
diff(range(x)) 8883
diff(range(x)) 9334
truerange(x) 1943
truerange(x) 1492
diff(range(x)) 9213
diff(range(x)) 9184
diff(range(x)) 9705
truerange(x) 1742
truerange(x) 1493
diff(range(x)) 9143
truerange(x) 1743
truerange(x) 1622
truerange(x) 1543
truerange(x) 1462
diff(range(x)) 9825
truerange(x) 1813
diff(range(x)) 9023
truerange(x) 1753
diff(range(x)) 9304
truerange(x) 1742
truerange(x) 1503
truerange(x) 1482
diff(range(x)) 9024
diff(range(x)) 8592
truerange(x) 1713
diff(range(x)) 8883
diff(range(x)) 9184
truerange(x) 1713
diff(range(x)) 8863
diff(range(x)) 9104
truerange(x) 1702
truerange(x) 1573
truerange(x) 1472
diff(range(x)) 9004
diff(range(x)) 8913
truerange(x) 1713
truerange(x) 1682
diff(range(x)) 8563
truerange(x) 1733
diff(range(x)) 8833
diff(range(x)) 8853
truerange(x) 1703
truerange(x) 1492
truerange(x) 1462
diff(range(x)) 8523
diff(range(x)) 9474
diff(range(x)) 8763
truerange(x) 1722
diff(range(x)) 8643
truerange(x) 1713
diff(range(x)) 10155
truerange(x) 1703
diff(range(x)) 8973
truerange(x) 1723
diff(range(x)) 9444
truerange(x) 1712
truerange(x) 1562
truerange(x) 1863
diff(range(x)) 9234
diff(range(x)) 10125
truerange(x) 1712
diff(range(x)) 8854
truerange(x) 2073
diff(range(x)) 9003
truerange(x) 1683
diff(range(x)) 9204
diff(range(x)) 9334
truerange(x) 1772
truerange(x) 1543
truerange(x) 1562
diff(range(x)) 9805
truerange(x) 1673
truerange(x) 1502
truerange(x) 1642
truerange(x) 1643
diff(range(x)) 8713
truerange(x) 1693
diff(range(x)) 9023
diff(range(x)) 8933
truerange(x) 1932
truerange(x) 1492
truerange(x) 1472
diff(range(x)) 8693
truerange(x) 1723
diff(range(x)) 8833
diff(range(x)) 9374
diff(range(x)) 8993
diff(range(x)) 9003
diff(range(x)) 9013
truerange(x) 2103
truerange(x) 1602
truerange(x) 1503
truerange(x) 1422
truerange(x) 1482
diff(range(x)) 8683
diff(range(x)) 9334
diff(range(x)) 8653
truerange(x) 1793
truerange(x) 1452
diff(range(x)) 8893
truerange(x) 2104
truerange(x) 1492
truerange(x) 1522
diff(range(x)) 8824
truerange(x) 1742
diff(range(x)) 9294
diff(range(x)) 9284
diff(range(x)) 8883
diff(range(x)) 9184
diff(range(x)) 18808
diff(range(x)) 9134
diff(range(x)) 9344
diff(range(x)) 9093
truerange(x) 1753
diff(range(x)) 9014
diff(range(x)) 9073
diff(range(x)) 9184
truerange(x) 1713
diff(range(x)) 9193
truerange(x) 1693
truerange(x) 1542
truerange(x) 1533
diff(range(x)) 9354
truerange(x) 1702
truerange(x) 1503
truerange(x) 1472
truerange(x) 1432
diff(range(x)) 8733
truerange(x) 1693
truerange(x) 1582
diff(range(x)) 8443
diff(range(x)) 9404
truerange(x) 1713
truerange(x) 1602
truerange(x) 1533
truerange(x) 1442
truerange(x) 1472
truerange(x) 1523
diff(range(x)) 9073
truerange(x) 1713
truerange(x) 1622
truerange(x) 1513
diff(range(x)) 8873
diff(range(x)) 9164
truerange(x) 1732
diff(range(x)) 8483
truerange(x) 1703
truerange(x) 1522
truerange(x) 1542
diff(range(x)) 8924
truerange(x) 1682
truerange(x) 1483
diff(range(x)) 9043
truerange(x) 1883
truerange(x) 1482
truerange(x) 1483
diff(range(x)) 8983
truerange(x) 1693
diff(range(x)) 8733
diff(range(x)) 9124
diff(range(x)) 9063
truerange(x) 1723
truerange(x) 1522
diff(range(x)) 8703
truerange(x) 1703
diff(range(x)) 8783
diff(range(x)) 9174
diff(range(x)) 8723
truerange(x) 1683
diff(range(x)) 9063
diff(range(x)) 8743
truerange(x) 1953
diff(range(x)) 8783
truerange(x) 1722
diff(range(x)) 8994
diff(range(x)) 8783
diff(range(x)) 8973
truerange(x) 1683
diff(range(x)) 9174
diff(range(x)) 8823
diff(range(x)) 9244
diff(range(x)) 9203
diff(range(x)) 8874
diff(range(x)) 8733
diff(range(x)) 9204
diff(range(x)) 9233
truerange(x) 1783
truerange(x) 1492
diff(range(x)) 9113
truerange(x) 1743
diff(range(x)) 9354
diff(range(x)) 8633
truerange(x) 1712
diff(range(x)) 8593
diff(range(x)) 9224
diff(range(x)) 8833
truerange(x) 1733
truerange(x) 1723
truerange(x) 1472
truerange(x) 1753
truerange(x) 1462
truerange(x) 1442
diff(range(x)) 8723
diff(range(x)) 9074
diff(range(x)) 9344
diff(range(x)) 8883
truerange(x) 1723
truerange(x) 1592
truerange(x) 1483
diff(range(x)) 9203
diff(range(x)) 8774
diff(range(x)) 8923
diff(range(x)) 8893
truerange(x) 1803
diff(range(x)) 9034
truerange(x) 1752
diff(range(x)) 8974
diff(range(x)) 8973
diff(range(x)) 8653
diff(range(x)) 9124
diff(range(x)) 9354
diff(range(x)) 8503
truerange(x) 1802
truerange(x) 1553
truerange(x) 1762
diff(range(x)) 8763
diff(range(x)) 8973
truerange(x) 1743
truerange(x) 1502
truerange(x) 1462
diff(range(x)) 8763
diff(range(x)) 8753
diff(range(x)) 9143
diff(range(x)) 8523
truerange(x) 2073
truerange(x) 1483
truerange(x) 1482
diff(range(x)) 8633
truerange(x) 1722
diff(range(x)) 8833
truerange(x) 1742
truerange(x) 1473
diff(range(x)) 10035
truerange(x) 1692
truerange(x) 1593
diff(range(x)) 8833
truerange(x) 1733
diff(range(x)) 8643
truerange(x) 1732
diff(range(x)) 8964
truerange(x) 1692
truerange(x) 1633
diff(range(x)) 8593
truerange(x) 1702
diff(range(x)) 9213
diff(range(x)) 9084
diff(range(x)) 9003
diff(range(x)) 9134
diff(range(x)) 9274
diff(range(x)) 9284
truerange(x) 2013
truerange(x) 1572
diff(range(x)) 8784
diff(range(x)) 9103
diff(range(x)) 9224
truerange(x) 1903
diff(range(x)) 9234
truerange(x) 1712
truerange(x) 1483
diff(range(x)) 10055
diff(range(x)) 9003
diff(range(x)) 8723
diff(range(x)) 9194
diff(range(x)) 8873
truerange(x) 1793
truerange(x) 1673
truerange(x) 1582
truerange(x) 1472
truerange(x) 1462
truerange(x) 1432
diff(range(x)) 9775
diff(range(x)) 9053
diff(range(x)) 9214
diff(range(x)) 8583
truerange(x) 1743
truerange(x) 1482
diff(range(x)) 20240
diff(range(x)) 9234
truerange(x) 1723
truerange(x) 1462
truerange(x) 1462
truerange(x) 1443
truerange(x) 1442
diff(range(x)) 8953
truerange(x) 1733
diff(range(x)) 9093
diff(range(x)) 9133
diff(range(x)) 8964
truerange(x) 1742
truerange(x) 1463
diff(range(x)) 9354
truerange(x) 1752
truerange(x) 1493
diff(range(x)) 9213
truerange(x) 1713
truerange(x) 1582
diff(range(x)) 8783
diff(range(x)) 8693
truerange(x) 2313
diff(range(x)) 8984
truerange(x) 1702
truerange(x) 1493
diff(range(x)) 9704
truerange(x) 1743
diff(range(x)) 9144
diff(range(x)) 8632
truerange(x) 1692
truerange(x) 1593
diff(range(x)) 8863
truerange(x) 1672
truerange(x) 1523
diff(range(x)) 9304
diff(range(x)) 9264
diff(range(x)) 9073
diff(range(x)) 8944
truerange(x) 1732
truerange(x) 1653
truerange(x) 1492
truerange(x) 1442
truerange(x) 1503
diff(range(x)) 8693
diff(range(x)) 8883
diff(range(x)) 8763
truerange(x) 1703
truerange(x) 1502
diff(range(x)) 8543
truerange(x) 1733
truerange(x) 1582
diff(range(x)) 9294
truerange(x) 1693
diff(range(x)) 8823
diff(range(x)) 8833
truerange(x) 1723
diff(range(x)) 8643
truerange(x) 1712
truerange(x) 1613
truerange(x) 1572
truerange(x) 1553
truerange(x) 1432
diff(range(x)) 8583
diff(range(x)) 8823
truerange(x) 1713
truerange(x) 1482
truerange(x) 1572
diff(range(x)) 9975
truerange(x) 1703
diff(range(x)) 8643
truerange(x) 1843
truerange(x) 1652
truerange(x) 1402
diff(range(x)) 8502
truerange(x) 1723
diff(range(x)) 8653
truerange(x) 1743
diff(range(x)) 8873
diff(range(x)) 8993
truerange(x) 1683
diff(range(x)) 9424
diff(range(x)) 8913
diff(range(x)) 10216
truerange(x) 1732
truerange(x) 1543
diff(range(x)) 8903
truerange(x) 1733
diff(range(x)) 8683
truerange(x) 1702
truerange(x) 1623
diff(range(x)) 8382
diff(range(x)) 8903
truerange(x) 1722
truerange(x) 1602
truerange(x) 1512
truerange(x) 1492

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.