Skip to contents

Computes descriptive statistics for selected numeric columns using efficient C++ routines.

Usage

descdata(data, cols = NULL, stats = 1:9, first = "variables",
         cores = NULL, verbose = FALSE)

Arguments

data

A data frame, matrix, or numeric vector. If a vector is supplied, it is treated as a single variable and the output's first column is named "value".

cols

Column indices or names of numeric variables to describe. If NULL, all numeric columns are used.

stats

Statistic selection from the nine available: n, na, mean, sd, median, trimmed, min, max, IQR. Can be a numeric vector or a character vector of statistic names.

first

Name for the first column of the output, which contains the variable identifiers.

cores

Number of CPU cores. NULL (default) means single-threaded execution; pass an integer > 0 to enable OpenMP when nrow(x) * ncol(x) > 1e5.

verbose

Logical; if TRUE, prints timing message.

Details

The function accepts vectors, matrices, and data frames. Numeric columns are required. The calculation is performed entirely in C++ via Rcpp for speed.

Value

A data frame with descriptive statistics for each variable.

References

1. Example data is from https://smear.avaa.csc.fi/download. It includes particle number concentrations in SMEAR I Varrio forest.

Author

Chun-Sheng Liang <chun-shengliang@qq.com>

Examples

descdata(data, cols = 5:65)
#>    variables    n   na       mean          sd    median    trimmed         min
#> 1       1.00    0 7640         NA          NA        NA         NA          NA
#> 2       1.12    0 7640         NA          NA        NA         NA          NA
#> 3       1.26    0 7640         NA          NA        NA         NA          NA
#> 4       1.41    0 7640         NA          NA        NA         NA          NA
#> 5       1.58    0 7640         NA          NA        NA         NA          NA
#> 6       1.78    0 7640         NA          NA        NA         NA          NA
#> 7       2.00    0 7640         NA          NA        NA         NA          NA
#> 8       2.24    0 7640         NA          NA        NA         NA          NA
#> 9       2.51    0 7640         NA          NA        NA         NA          NA
#> 10      2.82 1831 5809 377.548342  232.057899 308.71900 338.750339 48.53460000
#> 11      3.16 2953 4687 163.856277  127.194031 155.53500 145.101887 12.70120000
#> 12      3.55 2905 4735 101.408428  100.109664 113.80000  87.728721  0.15067000
#> 13      3.98 2828 4812  82.832798   53.525028  55.55000  72.590322 16.78160000
#> 14      4.47 2681 4959  71.360522   67.494732  70.81520  61.013203  0.34854000
#> 15      5.01 2681 4959  67.400926   70.031989  50.34510  53.435813 15.64750000
#> 16      5.62 2777 4863  67.572823   88.726503  42.73830  49.525343  6.91550000
#> 17      6.31 2777 4863  74.726541  119.486492  48.20240  50.549740  0.02589600
#> 18      7.08 3070 4570  83.786695  153.550092  41.16210  49.404452  9.90800000
#> 19      7.94 3347 4293  94.496663  202.657467  38.17240  51.268355  0.06745800
#> 20      8.91 3365 4275 117.342359  244.582742  40.60140  63.725664  8.75860000
#> 21     10.00 4828 2812 107.394751  259.508315  32.09315  52.033880  0.00016282
#> 22     11.20 4911 2729 131.065194  317.404638  34.77410  63.314355  0.07292500
#> 23     12.60 5872 1768 139.678406  355.117588  39.95320  64.058300  0.58137000
#> 24     14.10 6514 1126 152.617547  410.874283  38.92155  68.118876  0.12967000
#> 25     15.80 6531 1109 184.960682  486.785219  57.23150  87.084181  0.19471000
#> 26     17.80 6990  650 207.728499  538.927738  68.76095 100.337035  0.42396000
#> 27     20.00 6993  647 247.114152  597.021606  84.71810 124.974262  0.57975000
#> 28     22.40 7603   37 285.754562  639.500268 102.76200 151.611072  0.00216260
#> 29     25.10 7636    4 348.852943  761.704765 129.02750 191.510644  0.00679610
#> 30     28.20 7636    4 430.975150  961.136820 167.99200 243.642561  0.00067899
#> 31     31.60 7639    1 528.335516 1221.075866 208.37900 306.501051  0.38137000
#> 32     35.50 7640    0 617.408090 1358.463237 259.99800 369.610633  0.77338000
#> 33     39.80 7639    1 691.649174 1320.239148 320.46000 433.857210  0.21750000
#> 34     44.70 7639    1 741.232644 1120.372070 378.76300 502.514399  0.41838000
#> 35     50.10 7639    1 784.318858 1030.530451 436.58000 570.484041  0.58457000
#> 36     56.20 7640    0 829.717896 1035.216496 487.59450 624.374505  0.61576000
#> 37     63.10 7639    1 869.143281 1050.648428 498.95200 668.911949  1.21870000
#> 38     70.80 7639    1 885.951374 1064.389349 518.29800 689.735293  0.33661000
#> 39     79.40 7638    2 840.922408  986.278963 512.08900 667.387407  1.15090000
#> 40     89.10 7640    0 780.827840  875.033625 435.27700 638.815692  0.39055000
#> 41    100.00 7640    0 728.448612  780.032238 386.39250 610.261665  0.31265000
#> 42    112.00 7639    1 699.799458  727.270267 406.68400 594.479395  0.03176400
#> 43    126.00 7639    1 700.211375  718.782854 421.45200 597.909903  1.41100000
#> 44    141.00 7639    1 689.960011  715.834693 421.59800 580.962772  0.02218700
#> 45    158.00 7639    1 651.162342  688.701197 394.42000 535.358313  0.02948900
#> 46    178.00 7638    2 578.348095  626.925274 344.79200 463.459974  0.02486900
#> 47    200.00 7638    2 476.683959  525.553079 293.20900 377.371498  0.28979000
#> 48    224.00 7634    6 372.775244  416.227533 233.99000 293.867711  0.08919700
#> 49    251.00 7631    9 273.861736  314.895168 171.89500 213.599033  0.00142890
#> 50    282.00 7628   12 184.267679  223.772091 108.07650 139.914055  0.00032150
#> 51    316.00 7628   12 113.019360  146.215187  59.06300  82.723615  0.00046397
#> 52    355.00 7612   28  67.705978   90.034395  32.91005  48.402637  0.00069579
#> 53    398.00 7580   60  38.398310   52.949020  17.14910  26.687896  0.00063670
#> 54    447.00 7518  122  21.227147   30.471579   9.56665  14.564665  0.00040810
#> 55    501.00 7482  158  11.768533   17.605113   5.91940   8.257983  0.00010302
#> 56    562.00 7332  308   7.257685    9.879424   3.97785   5.352925  0.00035044
#> 57    631.00 7102  538   4.798839    5.529845   3.03455   3.775947  0.00015625
#> 58    708.00 5214 2426   4.774773    4.686060   3.41065   3.974979  0.00040956
#> 59    794.00    0 7640         NA          NA        NA         NA          NA
#> 60    891.00    0 7640         NA          NA        NA         NA          NA
#> 61   1000.00    0 7640         NA          NA        NA         NA          NA
#>           max         IQR
#> 1          NA          NA
#> 2          NA          NA
#> 3          NA          NA
#> 4          NA          NA
#> 5          NA          NA
#> 6          NA          NA
#> 7          NA          NA
#> 8          NA          NA
#> 9          NA          NA
#> 10  4253.7600   61.511500
#> 11  2164.7500  132.407100
#> 12  1160.9100  119.563500
#> 13   571.5760   50.327750
#> 14   684.5200   66.196600
#> 15   700.2300   47.378500
#> 16  1206.6300   53.777200
#> 17  1434.2600   79.739700
#> 18  2084.2800   49.405075
#> 19  3008.9900   70.715550
#> 20  3400.4200   75.959200
#> 21  4079.4400   71.644400
#> 22  5444.1500   90.020400
#> 23  5503.3500   92.844200
#> 24  8045.6300   96.609350
#> 25 13492.7000  119.147950
#> 26 14810.8000  137.727300
#> 27 13567.7000  174.112900
#> 28 10172.2000  211.989900
#> 29 10407.1000  266.843900
#> 30 15507.3000  333.751475
#> 31 21331.9000  419.536400
#> 32 22913.8000  521.526000
#> 33 20106.5000  632.866500
#> 34 11556.7000  740.444500
#> 35  8827.1500  836.025000
#> 36  8190.7600  941.843500
#> 37  7693.9600 1073.072000
#> 38  7530.5100 1199.013300
#> 39  6992.5100 1199.125100
#> 40  6243.5400 1175.845950
#> 41  5641.8500 1159.318275
#> 42  4357.3300 1134.288150
#> 43  3781.6600 1083.971600
#> 44  3196.0100  994.084200
#> 45  3106.3600  883.776000
#> 46  3164.9600  730.198500
#> 47  2745.0300  593.104850
#> 48  2524.2100  460.751850
#> 49  2139.0500  315.223650
#> 50  1796.8200  210.028850
#> 51  1349.3500  124.886175
#> 52   866.9500   74.577800
#> 53   768.1630   41.636800
#> 54   452.0760   20.668025
#> 55   283.1720   11.583125
#> 56   168.3340    7.142250
#> 57    78.2052    4.785200
#> 58    40.4814    4.832275
#> 59         NA          NA
#> 60         NA          NA
#> 61         NA          NA
descdata(data, cols = 5:65, stats = c(2, 7:9))
#>    variables   na         min        max         IQR
#> 1       1.00 7640          NA         NA          NA
#> 2       1.12 7640          NA         NA          NA
#> 3       1.26 7640          NA         NA          NA
#> 4       1.41 7640          NA         NA          NA
#> 5       1.58 7640          NA         NA          NA
#> 6       1.78 7640          NA         NA          NA
#> 7       2.00 7640          NA         NA          NA
#> 8       2.24 7640          NA         NA          NA
#> 9       2.51 7640          NA         NA          NA
#> 10      2.82 5809 48.53460000  4253.7600   61.511500
#> 11      3.16 4687 12.70120000  2164.7500  132.407100
#> 12      3.55 4735  0.15067000  1160.9100  119.563500
#> 13      3.98 4812 16.78160000   571.5760   50.327750
#> 14      4.47 4959  0.34854000   684.5200   66.196600
#> 15      5.01 4959 15.64750000   700.2300   47.378500
#> 16      5.62 4863  6.91550000  1206.6300   53.777200
#> 17      6.31 4863  0.02589600  1434.2600   79.739700
#> 18      7.08 4570  9.90800000  2084.2800   49.405075
#> 19      7.94 4293  0.06745800  3008.9900   70.715550
#> 20      8.91 4275  8.75860000  3400.4200   75.959200
#> 21     10.00 2812  0.00016282  4079.4400   71.644400
#> 22     11.20 2729  0.07292500  5444.1500   90.020400
#> 23     12.60 1768  0.58137000  5503.3500   92.844200
#> 24     14.10 1126  0.12967000  8045.6300   96.609350
#> 25     15.80 1109  0.19471000 13492.7000  119.147950
#> 26     17.80  650  0.42396000 14810.8000  137.727300
#> 27     20.00  647  0.57975000 13567.7000  174.112900
#> 28     22.40   37  0.00216260 10172.2000  211.989900
#> 29     25.10    4  0.00679610 10407.1000  266.843900
#> 30     28.20    4  0.00067899 15507.3000  333.751475
#> 31     31.60    1  0.38137000 21331.9000  419.536400
#> 32     35.50    0  0.77338000 22913.8000  521.526000
#> 33     39.80    1  0.21750000 20106.5000  632.866500
#> 34     44.70    1  0.41838000 11556.7000  740.444500
#> 35     50.10    1  0.58457000  8827.1500  836.025000
#> 36     56.20    0  0.61576000  8190.7600  941.843500
#> 37     63.10    1  1.21870000  7693.9600 1073.072000
#> 38     70.80    1  0.33661000  7530.5100 1199.013300
#> 39     79.40    2  1.15090000  6992.5100 1199.125100
#> 40     89.10    0  0.39055000  6243.5400 1175.845950
#> 41    100.00    0  0.31265000  5641.8500 1159.318275
#> 42    112.00    1  0.03176400  4357.3300 1134.288150
#> 43    126.00    1  1.41100000  3781.6600 1083.971600
#> 44    141.00    1  0.02218700  3196.0100  994.084200
#> 45    158.00    1  0.02948900  3106.3600  883.776000
#> 46    178.00    2  0.02486900  3164.9600  730.198500
#> 47    200.00    2  0.28979000  2745.0300  593.104850
#> 48    224.00    6  0.08919700  2524.2100  460.751850
#> 49    251.00    9  0.00142890  2139.0500  315.223650
#> 50    282.00   12  0.00032150  1796.8200  210.028850
#> 51    316.00   12  0.00046397  1349.3500  124.886175
#> 52    355.00   28  0.00069579   866.9500   74.577800
#> 53    398.00   60  0.00063670   768.1630   41.636800
#> 54    447.00  122  0.00040810   452.0760   20.668025
#> 55    501.00  158  0.00010302   283.1720   11.583125
#> 56    562.00  308  0.00035044   168.3340    7.142250
#> 57    631.00  538  0.00015625    78.2052    4.785200
#> 58    708.00 2426  0.00040956    40.4814    4.832275
#> 59    794.00 7640          NA         NA          NA
#> 60    891.00 7640          NA         NA          NA
#> 61   1000.00 7640          NA         NA          NA
descdata(data, cols = 5:65, stats = c("na", "min", "max", "IQR"))
#>    variables   na         min        max         IQR
#> 1       1.00 7640          NA         NA          NA
#> 2       1.12 7640          NA         NA          NA
#> 3       1.26 7640          NA         NA          NA
#> 4       1.41 7640          NA         NA          NA
#> 5       1.58 7640          NA         NA          NA
#> 6       1.78 7640          NA         NA          NA
#> 7       2.00 7640          NA         NA          NA
#> 8       2.24 7640          NA         NA          NA
#> 9       2.51 7640          NA         NA          NA
#> 10      2.82 5809 48.53460000  4253.7600   61.511500
#> 11      3.16 4687 12.70120000  2164.7500  132.407100
#> 12      3.55 4735  0.15067000  1160.9100  119.563500
#> 13      3.98 4812 16.78160000   571.5760   50.327750
#> 14      4.47 4959  0.34854000   684.5200   66.196600
#> 15      5.01 4959 15.64750000   700.2300   47.378500
#> 16      5.62 4863  6.91550000  1206.6300   53.777200
#> 17      6.31 4863  0.02589600  1434.2600   79.739700
#> 18      7.08 4570  9.90800000  2084.2800   49.405075
#> 19      7.94 4293  0.06745800  3008.9900   70.715550
#> 20      8.91 4275  8.75860000  3400.4200   75.959200
#> 21     10.00 2812  0.00016282  4079.4400   71.644400
#> 22     11.20 2729  0.07292500  5444.1500   90.020400
#> 23     12.60 1768  0.58137000  5503.3500   92.844200
#> 24     14.10 1126  0.12967000  8045.6300   96.609350
#> 25     15.80 1109  0.19471000 13492.7000  119.147950
#> 26     17.80  650  0.42396000 14810.8000  137.727300
#> 27     20.00  647  0.57975000 13567.7000  174.112900
#> 28     22.40   37  0.00216260 10172.2000  211.989900
#> 29     25.10    4  0.00679610 10407.1000  266.843900
#> 30     28.20    4  0.00067899 15507.3000  333.751475
#> 31     31.60    1  0.38137000 21331.9000  419.536400
#> 32     35.50    0  0.77338000 22913.8000  521.526000
#> 33     39.80    1  0.21750000 20106.5000  632.866500
#> 34     44.70    1  0.41838000 11556.7000  740.444500
#> 35     50.10    1  0.58457000  8827.1500  836.025000
#> 36     56.20    0  0.61576000  8190.7600  941.843500
#> 37     63.10    1  1.21870000  7693.9600 1073.072000
#> 38     70.80    1  0.33661000  7530.5100 1199.013300
#> 39     79.40    2  1.15090000  6992.5100 1199.125100
#> 40     89.10    0  0.39055000  6243.5400 1175.845950
#> 41    100.00    0  0.31265000  5641.8500 1159.318275
#> 42    112.00    1  0.03176400  4357.3300 1134.288150
#> 43    126.00    1  1.41100000  3781.6600 1083.971600
#> 44    141.00    1  0.02218700  3196.0100  994.084200
#> 45    158.00    1  0.02948900  3106.3600  883.776000
#> 46    178.00    2  0.02486900  3164.9600  730.198500
#> 47    200.00    2  0.28979000  2745.0300  593.104850
#> 48    224.00    6  0.08919700  2524.2100  460.751850
#> 49    251.00    9  0.00142890  2139.0500  315.223650
#> 50    282.00   12  0.00032150  1796.8200  210.028850
#> 51    316.00   12  0.00046397  1349.3500  124.886175
#> 52    355.00   28  0.00069579   866.9500   74.577800
#> 53    398.00   60  0.00063670   768.1630   41.636800
#> 54    447.00  122  0.00040810   452.0760   20.668025
#> 55    501.00  158  0.00010302   283.1720   11.583125
#> 56    562.00  308  0.00035044   168.3340    7.142250
#> 57    631.00  538  0.00015625    78.2052    4.785200
#> 58    708.00 2426  0.00040956    40.4814    4.832275
#> 59    794.00 7640          NA         NA          NA
#> 60    891.00 7640          NA         NA          NA
#> 61   1000.00 7640          NA         NA          NA