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.606 9.1265 9.585488  9.348 9.5730 41.327   500
#>    truerange(x) 4.228 4.2980 4.579840  4.468 4.5435 20.718   500
expr time
diff(range(x)) 41327
diff(range(x)) 14437
diff(range(x)) 10880
truerange(x) 13806
truerange(x) 4719
diff(range(x)) 11171
diff(range(x)) 10199
diff(range(x)) 9819
truerange(x) 4860
diff(range(x)) 9908
diff(range(x)) 9448
diff(range(x)) 9768
truerange(x) 4749
truerange(x) 4318
diff(range(x)) 9819
truerange(x) 4508
diff(range(x)) 9557
truerange(x) 4479
truerange(x) 4318
truerange(x) 4288
truerange(x) 4308
diff(range(x)) 9578
diff(range(x)) 9368
diff(range(x)) 9367
truerange(x) 4608
diff(range(x)) 9618
truerange(x) 4539
diff(range(x)) 9588
truerange(x) 4538
truerange(x) 4479
diff(range(x)) 9658
diff(range(x)) 9878
truerange(x) 4518
diff(range(x)) 9728
truerange(x) 4529
diff(range(x)) 9398
diff(range(x)) 9658
diff(range(x)) 9317
truerange(x) 4499
truerange(x) 4318
diff(range(x)) 9999
truerange(x) 4538
diff(range(x)) 10019
truerange(x) 4458
truerange(x) 4268
truerange(x) 4279
truerange(x) 4289
diff(range(x)) 9978
diff(range(x)) 10240
diff(range(x)) 10180
diff(range(x)) 10068
truerange(x) 4748
truerange(x) 20718
truerange(x) 4699
truerange(x) 4348
diff(range(x)) 12803
truerange(x) 4648
diff(range(x)) 10841
diff(range(x)) 9738
diff(range(x)) 9628
truerange(x) 4589
diff(range(x)) 9507
truerange(x) 4498
diff(range(x)) 9428
truerange(x) 4468
diff(range(x)) 9548
diff(range(x)) 9719
diff(range(x)) 10559
diff(range(x)) 9388
diff(range(x)) 9357
truerange(x) 4639
truerange(x) 4298
truerange(x) 4309
diff(range(x)) 9629
diff(range(x)) 9678
truerange(x) 4518
diff(range(x)) 9698
truerange(x) 4608
diff(range(x)) 9768
diff(range(x)) 9358
truerange(x) 4558
diff(range(x)) 9658
diff(range(x)) 10009
diff(range(x)) 9458
truerange(x) 4849
diff(range(x)) 9278
truerange(x) 4498
diff(range(x)) 9478
diff(range(x)) 9498
truerange(x) 4749
truerange(x) 4839
diff(range(x)) 9848
diff(range(x)) 10009
diff(range(x)) 9268
truerange(x) 4739
diff(range(x)) 9467
truerange(x) 4479
truerange(x) 4388
diff(range(x)) 9568
truerange(x) 4458
truerange(x) 4308
truerange(x) 4308
truerange(x) 4318
truerange(x) 4298
truerange(x) 4288
truerange(x) 4258
diff(range(x)) 10129
truerange(x) 4479
diff(range(x)) 9367
diff(range(x)) 9257
diff(range(x)) 9608
truerange(x) 4478
diff(range(x)) 10380
diff(range(x)) 9378
diff(range(x)) 10049
diff(range(x)) 9358
truerange(x) 4569
diff(range(x)) 9218
truerange(x) 4509
diff(range(x)) 9618
truerange(x) 4479
truerange(x) 4308
diff(range(x)) 9728
diff(range(x)) 9328
diff(range(x)) 9367
truerange(x) 4769
truerange(x) 4338
truerange(x) 4328
truerange(x) 4308
diff(range(x)) 9868
truerange(x) 4498
diff(range(x)) 9397
truerange(x) 4559
truerange(x) 4288
truerange(x) 4358
diff(range(x)) 9458
diff(range(x)) 9638
diff(range(x)) 9358
diff(range(x)) 11332
diff(range(x)) 9658
diff(range(x)) 9608
diff(range(x)) 9648
truerange(x) 4609
diff(range(x)) 9468
truerange(x) 4508
truerange(x) 4398
diff(range(x)) 9607
diff(range(x)) 9618
truerange(x) 4638
truerange(x) 4298
diff(range(x)) 9618
truerange(x) 4479
diff(range(x)) 9578
diff(range(x)) 9498
diff(range(x)) 10920
truerange(x) 4519
truerange(x) 4288
diff(range(x)) 9738
truerange(x) 4479
diff(range(x)) 9297
truerange(x) 4448
diff(range(x)) 9888
diff(range(x)) 9889
truerange(x) 4588
truerange(x) 4379
diff(range(x)) 9438
truerange(x) 4739
truerange(x) 4359
truerange(x) 4308
diff(range(x)) 9427
truerange(x) 4429
diff(range(x)) 9648
truerange(x) 4478
diff(range(x)) 10089
truerange(x) 4509
truerange(x) 4388
diff(range(x)) 9949
diff(range(x)) 10349
diff(range(x)) 9508
diff(range(x)) 9618
truerange(x) 4518
truerange(x) 4568
diff(range(x)) 10309
truerange(x) 4518
truerange(x) 4348
truerange(x) 4308
truerange(x) 4279
truerange(x) 4429
truerange(x) 4458
diff(range(x)) 24225
truerange(x) 4909
truerange(x) 4348
truerange(x) 4309
diff(range(x)) 10750
truerange(x) 4538
diff(range(x)) 9678
diff(range(x)) 9408
diff(range(x)) 9338
diff(range(x)) 9488
diff(range(x)) 9497
truerange(x) 4579
diff(range(x)) 9508
diff(range(x)) 9317
truerange(x) 4689
truerange(x) 4799
diff(range(x)) 10560
truerange(x) 4479
diff(range(x)) 10700
diff(range(x)) 9257
truerange(x) 4619
diff(range(x)) 9808
diff(range(x)) 10319
diff(range(x)) 9679
truerange(x) 4608
truerange(x) 4388
truerange(x) 4258
truerange(x) 4248
truerange(x) 4268
truerange(x) 4278
truerange(x) 4298
diff(range(x)) 9198
diff(range(x)) 9168
diff(range(x)) 9127
truerange(x) 4579
truerange(x) 4358
diff(range(x)) 9378
truerange(x) 4478
diff(range(x)) 9087
truerange(x) 4499
truerange(x) 4279
diff(range(x)) 9287
truerange(x) 4448
truerange(x) 4257
truerange(x) 4268
truerange(x) 4428
truerange(x) 4278
truerange(x) 4288
truerange(x) 4258
diff(range(x)) 8967
truerange(x) 4449
diff(range(x)) 9207
diff(range(x)) 9127
truerange(x) 4438
truerange(x) 4258
truerange(x) 4268
diff(range(x)) 9146
diff(range(x)) 9948
diff(range(x)) 9388
truerange(x) 4468
truerange(x) 4349
truerange(x) 4248
truerange(x) 4258
truerange(x) 4248
diff(range(x)) 9658
truerange(x) 4458
diff(range(x)) 9338
diff(range(x)) 9417
diff(range(x)) 9548
truerange(x) 4638
diff(range(x)) 9217
diff(range(x)) 9478
truerange(x) 4449
truerange(x) 4288
truerange(x) 4458
diff(range(x)) 9358
diff(range(x)) 9297
truerange(x) 4679
diff(range(x)) 9257
truerange(x) 4489
diff(range(x)) 9247
diff(range(x)) 8857
diff(range(x)) 9438
truerange(x) 4578
diff(range(x)) 9007
diff(range(x)) 9227
diff(range(x)) 9137
truerange(x) 4548
truerange(x) 4308
diff(range(x)) 9699
diff(range(x)) 8997
truerange(x) 4518
diff(range(x)) 9097
truerange(x) 4659
truerange(x) 4308
truerange(x) 4268
diff(range(x)) 9358
truerange(x) 4448
diff(range(x)) 9447
truerange(x) 4519
truerange(x) 4298
truerange(x) 4268
diff(range(x)) 9217
truerange(x) 4599
diff(range(x)) 9467
truerange(x) 4469
diff(range(x)) 9027
diff(range(x)) 9408
truerange(x) 4668
truerange(x) 4337
diff(range(x)) 9377
truerange(x) 4479
truerange(x) 4358
truerange(x) 4238
diff(range(x)) 9237
diff(range(x)) 9218
truerange(x) 4598
diff(range(x)) 9247
diff(range(x)) 9437
diff(range(x)) 9127
diff(range(x)) 8666
truerange(x) 4568
diff(range(x)) 9238
diff(range(x)) 9057
truerange(x) 4699
truerange(x) 4268
truerange(x) 4248
diff(range(x)) 9478
diff(range(x)) 8997
truerange(x) 4548
diff(range(x)) 9067
truerange(x) 4428
diff(range(x)) 8857
truerange(x) 4458
diff(range(x)) 9268
truerange(x) 4498
diff(range(x)) 9047
truerange(x) 4479
truerange(x) 4248
diff(range(x)) 9708
diff(range(x)) 9277
diff(range(x)) 9318
diff(range(x)) 8786
diff(range(x)) 23684
truerange(x) 5089
truerange(x) 4349
truerange(x) 4308
truerange(x) 4298
diff(range(x)) 9828
diff(range(x)) 9127
diff(range(x)) 9037
diff(range(x)) 9669
diff(range(x)) 9398
truerange(x) 4749
diff(range(x)) 9288
truerange(x) 4518
truerange(x) 4319
truerange(x) 4268
truerange(x) 4239
truerange(x) 4239
truerange(x) 4248
truerange(x) 4328
diff(range(x)) 8997
diff(range(x)) 9277
diff(range(x)) 9017
diff(range(x)) 9568
truerange(x) 4609
diff(range(x)) 9177
truerange(x) 4498
diff(range(x)) 9046
diff(range(x)) 9027
diff(range(x)) 9859
truerange(x) 4629
truerange(x) 4289
truerange(x) 4278
diff(range(x)) 9538
diff(range(x)) 9377
truerange(x) 4499
truerange(x) 4268
truerange(x) 4278
diff(range(x)) 9397
diff(range(x)) 9257
truerange(x) 4498
truerange(x) 4268
truerange(x) 4288
truerange(x) 4248
diff(range(x)) 9387
truerange(x) 4559
truerange(x) 4519
diff(range(x)) 9487
diff(range(x)) 9518
truerange(x) 4549
diff(range(x)) 9487
truerange(x) 4478
truerange(x) 4469
truerange(x) 4258
truerange(x) 4318
diff(range(x)) 9017
truerange(x) 4458
truerange(x) 4429
diff(range(x)) 12775
diff(range(x)) 9477
truerange(x) 4709
truerange(x) 4258
diff(range(x)) 9969
diff(range(x)) 8987
diff(range(x)) 9698
diff(range(x)) 9107
diff(range(x)) 9438
truerange(x) 4709
truerange(x) 4438
truerange(x) 4319
diff(range(x)) 8976
truerange(x) 4499
truerange(x) 4378
truerange(x) 4368
diff(range(x)) 9448
diff(range(x)) 8957
truerange(x) 4578
truerange(x) 4277
diff(range(x)) 9197
diff(range(x)) 9227
diff(range(x)) 9348
diff(range(x)) 9167
truerange(x) 4639
diff(range(x)) 9408
truerange(x) 4509
truerange(x) 4388
truerange(x) 4339
diff(range(x)) 9739
truerange(x) 4488
diff(range(x)) 9318
diff(range(x)) 8876
truerange(x) 4508
diff(range(x)) 9628
truerange(x) 4479
diff(range(x)) 9498
diff(range(x)) 9057
truerange(x) 4518
diff(range(x)) 9107
diff(range(x)) 9217
diff(range(x)) 8707
truerange(x) 4518
diff(range(x)) 9478
truerange(x) 4609
diff(range(x)) 8967
diff(range(x)) 9557
truerange(x) 4588
diff(range(x)) 9508
truerange(x) 4498
diff(range(x)) 9387
diff(range(x)) 9037
diff(range(x)) 9648
truerange(x) 4489
diff(range(x)) 9187
truerange(x) 4519
diff(range(x)) 9508
diff(range(x)) 9368
truerange(x) 4539
diff(range(x)) 9457
truerange(x) 4549
diff(range(x)) 9337
diff(range(x)) 9088
diff(range(x)) 9097
diff(range(x)) 9497
diff(range(x)) 8907
diff(range(x)) 9358
diff(range(x)) 8666
diff(range(x)) 9077
diff(range(x)) 8806
diff(range(x)) 9898
truerange(x) 4649
truerange(x) 4418
truerange(x) 4278
truerange(x) 4248
truerange(x) 4258
diff(range(x)) 9087
truerange(x) 4538
diff(range(x)) 9337
truerange(x) 4538
truerange(x) 4268
truerange(x) 4248
truerange(x) 4238
truerange(x) 4258
truerange(x) 17002
truerange(x) 4689
truerange(x) 4388
diff(range(x)) 11712
diff(range(x)) 10270
diff(range(x)) 9398
diff(range(x)) 9077
diff(range(x)) 9378
diff(range(x)) 9267
truerange(x) 4749
truerange(x) 4418
diff(range(x)) 9247
truerange(x) 4498
truerange(x) 4288
diff(range(x)) 9557
truerange(x) 4499
diff(range(x)) 9317
diff(range(x)) 9368
diff(range(x)) 9107
truerange(x) 4609
diff(range(x)) 9367
diff(range(x)) 8966
diff(range(x)) 9448
truerange(x) 4568
truerange(x) 4378
truerange(x) 4288
diff(range(x)) 9067
truerange(x) 4558
diff(range(x)) 8977
diff(range(x)) 9178
diff(range(x)) 9017
truerange(x) 4558
diff(range(x)) 9288
truerange(x) 4538
diff(range(x)) 9588
truerange(x) 4489
truerange(x) 4288
truerange(x) 4268
diff(range(x)) 9358
diff(range(x)) 10038
diff(range(x)) 9066
truerange(x) 4508
diff(range(x)) 8957
truerange(x) 4548
truerange(x) 4319
truerange(x) 4329
truerange(x) 4458
truerange(x) 4238
truerange(x) 4258
diff(range(x)) 9077
diff(range(x)) 10209
truerange(x) 4618
diff(range(x)) 9508
diff(range(x)) 8907
truerange(x) 4478
truerange(x) 4268
truerange(x) 4338
diff(range(x)) 9208
diff(range(x)) 9037
truerange(x) 4478
diff(range(x)) 10440
diff(range(x)) 9548
truerange(x) 4548
truerange(x) 4308
truerange(x) 4237
diff(range(x)) 9088
diff(range(x)) 9668
truerange(x) 4669
truerange(x) 4277
truerange(x) 4248
diff(range(x)) 9658
truerange(x) 4498
diff(range(x)) 9318
diff(range(x)) 9728
truerange(x) 4538
diff(range(x)) 9257
diff(range(x)) 9387
truerange(x) 4468
diff(range(x)) 9297
diff(range(x)) 9659
diff(range(x)) 9147
truerange(x) 4618
diff(range(x)) 10108
diff(range(x)) 9267
diff(range(x)) 9147
truerange(x) 4539
truerange(x) 4308
diff(range(x)) 9488
truerange(x) 4588
diff(range(x)) 8797
diff(range(x)) 9247
diff(range(x)) 9558
truerange(x) 4609
truerange(x) 4318
truerange(x) 4499
diff(range(x)) 9128
diff(range(x)) 9147
truerange(x) 4538
truerange(x) 4449
diff(range(x)) 9538
truerange(x) 4468
diff(range(x)) 9128
diff(range(x)) 9207
truerange(x) 4498
diff(range(x)) 9328
diff(range(x)) 9157
truerange(x) 4689
diff(range(x)) 9427
truerange(x) 4568
truerange(x) 4288
truerange(x) 4299
truerange(x) 4459
truerange(x) 4729
diff(range(x)) 9477
diff(range(x)) 9508
truerange(x) 4489
diff(range(x)) 9207
diff(range(x)) 9588
diff(range(x)) 8857
diff(range(x)) 8957
truerange(x) 4568
truerange(x) 4709
diff(range(x)) 9177
truerange(x) 4498
truerange(x) 4308
diff(range(x)) 9638
truerange(x) 4478
diff(range(x)) 9037
diff(range(x)) 10229
diff(range(x)) 9097
truerange(x) 4539
diff(range(x)) 9087
diff(range(x)) 8967
truerange(x) 4458
diff(range(x)) 9137
diff(range(x)) 8987
truerange(x) 4689
truerange(x) 4338
truerange(x) 4268
diff(range(x)) 29596
truerange(x) 6963
truerange(x) 5109
diff(range(x)) 16530
diff(range(x)) 9969
diff(range(x)) 10149
diff(range(x)) 9548
truerange(x) 4990
truerange(x) 4299
diff(range(x)) 9447
diff(range(x)) 9177
diff(range(x)) 9397
truerange(x) 4609
truerange(x) 4358
diff(range(x)) 9358
truerange(x) 4558
truerange(x) 4288
truerange(x) 4298
truerange(x) 4228
diff(range(x)) 9418
truerange(x) 4519
diff(range(x)) 8977
truerange(x) 4548
diff(range(x)) 9137
truerange(x) 4488
truerange(x) 4298
truerange(x) 4268
diff(range(x)) 9648
diff(range(x)) 9107
truerange(x) 4578
diff(range(x)) 9388
diff(range(x)) 9768
truerange(x) 4498
diff(range(x)) 9127
diff(range(x)) 9448
truerange(x) 4508
truerange(x) 4308
truerange(x) 4278
diff(range(x)) 10179
diff(range(x)) 8997
truerange(x) 4739
truerange(x) 4278
diff(range(x)) 8987
truerange(x) 4559
diff(range(x)) 9648
diff(range(x)) 9568
truerange(x) 4579
truerange(x) 4288
truerange(x) 4298
diff(range(x)) 8997
diff(range(x)) 9708
diff(range(x)) 9708
truerange(x) 4980
diff(range(x)) 9297
truerange(x) 4609
diff(range(x)) 9387
truerange(x) 4469
diff(range(x)) 9157
truerange(x) 4528
diff(range(x)) 8866
truerange(x) 4599
truerange(x) 4448
truerange(x) 4258
diff(range(x)) 9508
diff(range(x)) 9007
truerange(x) 4448
diff(range(x)) 9297
truerange(x) 4489
diff(range(x)) 9317
truerange(x) 4439
diff(range(x)) 9128
diff(range(x)) 9127
truerange(x) 4488
truerange(x) 4318
truerange(x) 4288
diff(range(x)) 9507
truerange(x) 4479
truerange(x) 4348
truerange(x) 4268
truerange(x) 4248
diff(range(x)) 8847
truerange(x) 4458
diff(range(x)) 9137
diff(range(x)) 8877
truerange(x) 4479
truerange(x) 4288
truerange(x) 4248
diff(range(x)) 9407
truerange(x) 4469
diff(range(x)) 8756
diff(range(x)) 9237
diff(range(x)) 8786
diff(range(x)) 8837
diff(range(x)) 9388
truerange(x) 4649
truerange(x) 4298
truerange(x) 4258
truerange(x) 4258
truerange(x) 4228
diff(range(x)) 9097
diff(range(x)) 8837
diff(range(x)) 9708
truerange(x) 4539
truerange(x) 4268
diff(range(x)) 9407
truerange(x) 4539
truerange(x) 4258
truerange(x) 4278
diff(range(x)) 9388
truerange(x) 4468
diff(range(x)) 9017
diff(range(x)) 9187
diff(range(x)) 8997
diff(range(x)) 9298
diff(range(x)) 8836
diff(range(x)) 9247
diff(range(x)) 9417
diff(range(x)) 8737
truerange(x) 4678
diff(range(x)) 9428
diff(range(x)) 9298
diff(range(x)) 9628
truerange(x) 4518
diff(range(x)) 9087
truerange(x) 4549
truerange(x) 4338
truerange(x) 4308
diff(range(x)) 9628
truerange(x) 4479
truerange(x) 4468
truerange(x) 4399
truerange(x) 4308
diff(range(x)) 9127
truerange(x) 4498
truerange(x) 4278
diff(range(x)) 9468
diff(range(x)) 9398
truerange(x) 4488
truerange(x) 4278
truerange(x) 4339
truerange(x) 4268
truerange(x) 4288
truerange(x) 4298
diff(range(x)) 8866
truerange(x) 18574
truerange(x) 4839
truerange(x) 4489
diff(range(x)) 10680
diff(range(x)) 9908
truerange(x) 5030
diff(range(x)) 9348
truerange(x) 4588
truerange(x) 4298
truerange(x) 4288
diff(range(x)) 9157
truerange(x) 4518
truerange(x) 4368
diff(range(x)) 9558
truerange(x) 4529
truerange(x) 4328
truerange(x) 4248
diff(range(x)) 9288
truerange(x) 4458
diff(range(x)) 9097
diff(range(x)) 9378
diff(range(x)) 8877
truerange(x) 4518
truerange(x) 4298
diff(range(x)) 9137
truerange(x) 4479
diff(range(x)) 9528
diff(range(x)) 9337
diff(range(x)) 9057
truerange(x) 4489
diff(range(x)) 9488
diff(range(x)) 9287
truerange(x) 4538
diff(range(x)) 9357
truerange(x) 4479
diff(range(x)) 9227
diff(range(x)) 9718
diff(range(x)) 9047
truerange(x) 4589
diff(range(x)) 9287
diff(range(x)) 8997
diff(range(x)) 8977
diff(range(x)) 8947
diff(range(x)) 9287
diff(range(x)) 8807
diff(range(x)) 9227
diff(range(x)) 9237
truerange(x) 4739
truerange(x) 4338
diff(range(x)) 8876
truerange(x) 4439
diff(range(x)) 8956
diff(range(x)) 9157
truerange(x) 4558
diff(range(x)) 8686
diff(range(x)) 9487
diff(range(x)) 9277
truerange(x) 4729
truerange(x) 4348
truerange(x) 4268
truerange(x) 4318
truerange(x) 4259
truerange(x) 4309
diff(range(x)) 9137
diff(range(x)) 8826
diff(range(x)) 9126
diff(range(x)) 8606
truerange(x) 4638
truerange(x) 4317
truerange(x) 4348
diff(range(x)) 9798
diff(range(x)) 9127
diff(range(x)) 9398
diff(range(x)) 8796
truerange(x) 4519
diff(range(x)) 9238
truerange(x) 4488
diff(range(x)) 9357
diff(range(x)) 9006
diff(range(x)) 9137
diff(range(x)) 8946
diff(range(x)) 9017
diff(range(x)) 9147
truerange(x) 4589
truerange(x) 4308
truerange(x) 4629
diff(range(x)) 9478
diff(range(x)) 9177
truerange(x) 4538
truerange(x) 4279
truerange(x) 4268
diff(range(x)) 9297
diff(range(x)) 9338
diff(range(x)) 9157
diff(range(x)) 9768
truerange(x) 4669
truerange(x) 4288
truerange(x) 4308
diff(range(x)) 9808
truerange(x) 4589
diff(range(x)) 9057
truerange(x) 4489
truerange(x) 4298
diff(range(x)) 9227
truerange(x) 4459
truerange(x) 4268
diff(range(x)) 9448
truerange(x) 4638
diff(range(x)) 8817
truerange(x) 4508
diff(range(x)) 8856
truerange(x) 4458
truerange(x) 4277
diff(range(x)) 9076
truerange(x) 4498
diff(range(x)) 9307
diff(range(x)) 8786
diff(range(x)) 9147
diff(range(x)) 8817
diff(range(x)) 8896
diff(range(x)) 8887
truerange(x) 4639
truerange(x) 4328
diff(range(x)) 9338
diff(range(x)) 8856
diff(range(x)) 9809
truerange(x) 4749
diff(range(x)) 9517
truerange(x) 4709
truerange(x) 4569
diff(range(x)) 8877
diff(range(x)) 9287
diff(range(x)) 9248
diff(range(x)) 8807
diff(range(x)) 8857
truerange(x) 4568
truerange(x) 4298
truerange(x) 4259
truerange(x) 16390
truerange(x) 4579
truerange(x) 4288
diff(range(x)) 11441
diff(range(x)) 9678
diff(range(x)) 8976
diff(range(x)) 9177
truerange(x) 4588
truerange(x) 4348
diff(range(x)) 9377
diff(range(x)) 9408
truerange(x) 4779
truerange(x) 4278
truerange(x) 4258
truerange(x) 4258
truerange(x) 4248
diff(range(x)) 9568
truerange(x) 4499
diff(range(x)) 9347
diff(range(x)) 9147
diff(range(x)) 9358
truerange(x) 4559
truerange(x) 4418
diff(range(x)) 9608
truerange(x) 4479
truerange(x) 4248
diff(range(x)) 9338
truerange(x) 4519
truerange(x) 4328
diff(range(x)) 8966
diff(range(x)) 9377
truerange(x) 4539
diff(range(x)) 9297
truerange(x) 4469
truerange(x) 4358
diff(range(x)) 9328
truerange(x) 4518
diff(range(x)) 8917
diff(range(x)) 9287
truerange(x) 4579
truerange(x) 4348
diff(range(x)) 9418
truerange(x) 4548
truerange(x) 4349
diff(range(x)) 8987
diff(range(x)) 9057
diff(range(x)) 9558
diff(range(x)) 8997
truerange(x) 4639
truerange(x) 4318
truerange(x) 4278
truerange(x) 4257
truerange(x) 4268
diff(range(x)) 9198
diff(range(x)) 8856
diff(range(x)) 9649
truerange(x) 4598
truerange(x) 4279
diff(range(x)) 9178
truerange(x) 4518
truerange(x) 4268
diff(range(x)) 9077
truerange(x) 4549
diff(range(x)) 9167
diff(range(x)) 9628
truerange(x) 4489
diff(range(x)) 10119
truerange(x) 4498
truerange(x) 4278
truerange(x) 4258
truerange(x) 4348
truerange(x) 4288
diff(range(x)) 8947
diff(range(x)) 9217
truerange(x) 4478
truerange(x) 4469
truerange(x) 4558
diff(range(x)) 9418
truerange(x) 4538
diff(range(x)) 9427
truerange(x) 4459
truerange(x) 4288
truerange(x) 4458
diff(range(x)) 9328
truerange(x) 4488
diff(range(x)) 8817
truerange(x) 4589
diff(range(x)) 9057
diff(range(x)) 8807
truerange(x) 4488
diff(range(x)) 9087
diff(range(x)) 9097
diff(range(x)) 9087
truerange(x) 4498
truerange(x) 4289
diff(range(x)) 8886
truerange(x) 4709
diff(range(x)) 9097
truerange(x) 4459
truerange(x) 4359
diff(range(x)) 9097
diff(range(x)) 9307
truerange(x) 4479
truerange(x) 4288
truerange(x) 4268
truerange(x) 4268

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.