Issue:
I have a data frame called 'New_Acoustic_Parameters' that contains seven variables (see the structure of data below) that I would like to produce a summary table of descriptive statistics (mean, standard deviation, standard error, min, max, q25, q75, and the coefficient of variation - CV) using the dplyr package with the functions select and summarise each. My aim is to produce a table similar to the diagram below.
I've tried many different ways to write this code using different variations and I've tried to follow other solutions given for questions on StackOverflow, which did not work for me. I'm feeling confused! When I run the code below, nothing happens.
Would anyone be able to lend a hand?
Many thanks if anyone can help.
Structure of data:
$ ID : int 1 2 3 4 5 6 7 8 9 10 ...
$ Low.Freq : num 7278 3965 4888 3639 12948 ...
$ High.Freq : num 11351 6897 6626 5248 15549 ...
$ Peak.Freq : num 10767 4221 5943 4048 13867 ...
$ Delta.Freq : num 4073 2933 1738 1609 2600 ...
$ Delta.Time : num 0.0803 0.1293 0.1703 0.1482 0.0535 ...
$ Peak.Time : num 198.6 417.4 417.9 35.4 89.6 ...
$ Center.Freq : num 10508 5340 5771 4221 13695 ...
$ Whistle_Type : Factor w/ 6 levels "A","B","C","D",..: 1 5 5 2 1 4 5 5 5
$ Start.Freq : num 7311 6789 6296 5101 13024 ...
$ End.Freq : num 11141 6789 6557 4278 15410 ...
$ Species : Factor w/ 3 levels "Grampus griseus",..: 3 3 3 3 3 3 3 3 3 3 ...
R-code
library(dplyr)
library(tidyr)
#Function to calculate the coefficient of variation
cv <- function(x) 100*( sd(x)/mean(x))
Summary_Statistics <- New_Acoustic_Parameters %>%
select(Low.Freq, High.Freq, Peak.Freq, Delta.Freq, Delta.Time, Peak.Time,
Center.Freq, Start.Freq, End.Freq) %>%
summarise_each(Median = median,
Mean = mean,
n = sum,
SD = sd,
SE = sd(.)/sqrt(length(n),
Min = min,
Max = max,
q25 = quantile(., 0.25),
q75 = quantile(., 0.75),
CV=cv
)
Diagram
Data
structure(list(ID = 1:150, Low.Freq = c(435, 94103292, 1, 2688,
8471, 28818, 654755585, 468628164, 342491, 2288474, 3915, 411,
267864894, 3312618, 5383, 8989443, 1894, 534981, 9544861, 3437614,
475386, 7550764, 48744, 2317845, 5126197, 2445, 8, 557450, 450259742,
21006647, 9, 7234027, 59, 9, 605, 9199, 3022, 30218156, 46423,
38, 88, 396396244, 28934316, 7723, 95688045, 679354, 716352,
76289, 332826763, 6, 90975, 83103577, 9529, 229093, 42810, 5,
18175302, 1443751, 5831, 8303661, 86, 778, 23947, 8, 9829740,
2075838, 7434328, 82174987, 2, 94037071, 9638653, 5, 3, 65972,
0, 936779338, 4885076, 745, 8, 56456, 125140, 73043989, 516476,
7, 4440739, 612, 3966, 8, 9255, 84127, 96218, 5690, 56, 3561,
78738, 1803363, 809369, 7131, 0, 35502443, 88864, 94, 850, 89628,
261319, 4848, 97341913, 75, 82481, 806, 14, 7, 88, 912102577,
48, 169, 6949, 165, 35969, 44, 955, 9, 43090317, 3, 7905, 596,
7262304, 4246710, 68, 0, 6859264, 85725268, 985, 861158777, 95,
386, 8773, 765, 6798, 18, 9, 32472, 3, 647698334, 27918648, 836,
188837805, 968, 88656, 5823702), High.Freq = c(6071, 3210, 6,
7306092, 6919054, 666399, 78, 523880161, 4700783, 4173830, 30,
811, 341014, 780, 44749, 91, 201620707, 74, 1, 65422, 595, 89093186,
946520, 6940919, 655350, 4, 6, 618, 2006697, 889, 1398, 28769,
90519642, 984, 0, 296209525, 487088392, 5, 894, 529, 5, 99106,
2, 926017, 9078, 1, 21, 88601017, 575770, 48, 8431, 194, 62324996,
5, 81, 40634727, 806901520, 6818173, 3501, 91780, 36106039, 5834347,
58388837, 34, 3280, 6507606, 19, 402, 584, 76, 4078684, 199,
6881, 92251, 81715, 40, 327, 57764, 97668898, 2676483, 76, 4694,
817120, 51, 116712, 666, 3, 42841, 9724, 21, 4, 359, 2604, 22,
30490, 5640, 34, 51923625, 35544, 59644, 306266049, 27533545,
61, 2, 5970, 88728373, 664355064, 30548207, 254317, 868, 460,
80, 7003, 86, 916570, 3124, 24, 1217766, 1, 95912, 59634328,
0, 761341, 95, 5, 65269, 849, 30408, 99, 9, 78771, 1288, 70567,
4, 449, 77, 90, 4520867, 7492578, 825466852, 349445, 23, 9094,
20, 233144, 21, 82, 216201, 15988509, 8594969), Peak.Freq = c(87005561,
9102, 994839015, 42745869, 32840, 62737133, 2722, 24, 67404881,
999242982, 3048, 85315406, 703037627, 331264, 8403609, 3934064,
50578953, 370110665, 3414, 12657, 40, 432, 7707, 214, 68588962,
69467, 75, 500297, 704, 1, 102659072, 60896923, 4481230, 94124925,
60164619, 447, 580, 8, 172, 9478521, 20, 53, 3072127, 2160, 27301893,
8, 4263, 508, 712409, 50677, 522433683, 112844, 193385, 458269,
93578705, 22093131, 6, 9, 1690461, 0, 4, 652847, 44767, 21408,
5384, 304, 721, 651147, 2426, 586, 498289375, 945, 6, 816, 46207,
39135, 6621028, 66905, 26905085, 4098, 0, 14, 88, 530, 97809006,
90, 6, 260792844, 9, 833205723, 99467321, 5, 8455640, 54090,
2, 309, 299161148, 4952, 454824, 729805154, 395358183, 2643,
314568967, 80599, 34187604, 304, 86161503, 8685, 99892, 13687,
54, 98470989, 7, 55, 879113565, 106660, 902524584, 71116, 43689323,
863, 6930, 5, 965, 70107282, 29588, 9, 59, 39159, 64446665, 6034008,
96, 35850, 670200431, 17145, 311804, 31, 7747522, 2270162, 611,
36121267, 22900823, 3, 323, 844738, 956, 41433111, 22694748,
85899937, 42, 9497559), Delta.Freq = c(5, 78, 88553, 794, 5,
3859122, 782, 36, 8756801, 243169338, 817789, 8792384, 7431,
626921743, 9206, 95789, 7916, 8143453, 6, 4, 6363, 181125, 259618,
6751, 33, 37960, 0, 2, 599582228, 565585, 19, 48, 269450424,
70676581, 7830566, 4, 86484313, 21, 90899794, 2, 72356, 574280,
869544, 73418, 6468164, 2259, 5938505, 31329, 1249, 354, 8817,
3, 2568, 82809, 29836269, 5230, 37, 33752014, 79307, 1736, 8522076,
40, 2289135, 862, 801448, 8026, 5, 15, 4393771, 405914, 71098,
950288, 8319, 1396973, 832, 70, 1746, 61907, 8709547, 300750537,
45862, 91417085, 79892, 47765, 5477, 18, 4186, 2860, 754038591,
375, 53809223, 72, 136, 509, 232325, 13128104, 1692, 8581, 23,
7, 5, 1269784, 55451, 614683290, 645, 1, 16, 93, 19250054, 2695713,
78271, 7, 6, 691373, 0, 278, 42857, 8, 94900646, 27796603, 72716820,
12816272, 7738, 596087, 64091692, 2261964, 371, 978998, 127180699,
94, 60969, 23, 66, 13, 26408810, 4, 65, 8687, 72140, 566656,
263437292, 9088, 46496188, 215843, 510, 51989, 16736709, 147,
8823, 82), Delta.Time = c(1361082, 7926, 499, 5004, 3494530,
213, 64551179, 70, 797, 5, 72588, 86976, 5163, 635080, 3, 91,
919806257, 81443, 3135427, 4410972, 5810, 8, 46603718, 422, 1083626,
48, 15699890, 7, 90167635, 446459879, 2332071, 761660, 49218442,
381, 46, 493197, 46, 798597155, 45342274, 6265842, 6, 3445819,
351, 1761227, 214, 959, 908996387, 6, 3855, 9096604, 152664,
7970052, 32366926, 31, 5201618, 114, 7806411, 70, 239, 5065,
2, 1, 14472831, 122042249, 8, 495604, 29, 8965478, 2875, 959,
39, 9, 690, 933626665, 85294, 580093, 95934, 982058, 65244056,
137508, 29, 7621, 7527, 72, 2, 315, 6, 2413, 8625150, 51298109,
851, 890460, 160736, 6, 850842734, 2, 7, 76969113, 190536, 7855,
3, 946706344, 789239369, 93, 802838635, 291929, 55, 52, 6, 93601,
5, 179260, 44006, 220573, 42152733, 7, 534618382, 3, 768153,
206921, 59, 324331, 52641160, 74563, 24, 4, 24, 1046, 862, 71454,
98894864, 27686265, 72584615, 3, 106, 2, 67439, 6408, 2160359,
862, 998, 453, 26179, 5857483, 7796517, 659, 261, 0, 25779, 688592899
), Peak.Time = c(1465265, 452894, 545076172, 8226275, 5040875,
700530, 1, 3639, 20141, 71712131, 686, 923, 770569738, 69961,
737458636, 122403, 199502046, 6108, 907, 108078263, 7817, 4,
6, 69, 721, 786353, 87486, 1563, 876, 47599535, 79295722, 53,
7378, 591, 6607935, 954, 6295, 75514344, 5742050, 25647276, 449,
328566184, 4, 2, 2703, 21367543, 63429043, 708, 782, 909820,
478, 50, 922, 579882, 7850, 534, 2157492, 96, 6, 716, 5, 653290336,
447854237, 2, 31972263, 645, 7, 609909, 4054695, 455631, 4919894,
9, 72713, 9997, 84090765, 89742, 5, 5028, 4126, 23091, 81, 239635020,
3576, 898597785, 6822, 3798, 201999, 19624, 20432923, 18944093,
930720236, 1492302, 300122, 143633, 5152743, 417344, 813, 55792,
78, 14203776, 853437, 964147297, 895424, 57, 361, 68512, 5, 9395,
53562, 83436598, 6372, 33387, 51, 71, 2340, 246145, 58519, 15442937,
362336019, 213917, 5874213, 4550, 644668065, 3712371, 5928, 8833,
7, 2186023, 61627221, 37297, 716427989, 21387, 26639, 13428,
66290997, 6657, 16, 52256745, 1179, 578, 4602, 7, 5, 23530306,
545453, 6930, 9120798, 415, 229600784, 8862829), Start.Freq = c(426355,
22073538, 680374, 41771, 54, 6762844, 599171, 108, 257451851,
438814, 343045, 4702, 967787, 1937, 18, 89301735, 366, 90, 954,
7337732, 70891703, 4139, 10397931, 940000382, 7, 38376, 878528819,
6287, 738366, 31, 47, 5, 6, 77848, 2366508, 45, 3665842, 7252260,
6, 61, 3247, 448348, 1, 705132, 144, 7423637, 2, 497, 844927639,
78978, 914, 131, 7089563, 927, 9595581, 2774463, 1651, 73509280,
7, 35, 18, 96, 1, 92545512, 27354947, 7556, 65019, 7480, 71835,
8249, 64792, 71537, 349389666, 280244484, 82, 6, 40, 353872,
0, 103, 1255, 4752, 29, 76, 81185, 14, 9, 470775630, 818361265,
57947209, 44, 24, 41295, 4, 261449, 9931404, 773556640, 930717,
65007421, 341175, 287376310, 104, 17, 45616, 48, 0, 34436, 413591913,
799218, 81, 139678, 87142, 314040, 1, 486, 30120565, 95, 421252320,
586616452, 45, 2, 1470, 391034, 59182022, 75, 267101, 267, 2,
183169, 814298, 2, 68720184, 8256, 3, 26054, 391397, 5724, 61464405,
40455, 8066605, 1, 474008, 9577335, 1, 443959, 2454751, 2250,
30385546, 22091, 7973), End.Freq = c(71000996, 11613579, 71377155,
1942738, 8760748, 79, 455, 374, 8, 5, 2266932, 597833, 155488,
3020, 4, 554, 4, 16472, 1945649, 668181101, 649780, 22394365,
93060602, 172146, 20472, 23558847, 190513, 22759044, 44, 78450,
205621181, 218, 69916344, 23884, 66, 312148, 7710564, 4, 422,
744572, 651547554, 45554, 38493, 91055218, 38, 1116474, 2295482,
3001, 9, 3270, 141, 55595, 38451, 8660867, 14, 96, 345, 6, 44,
8235824, 910517, 1424326, 87102566, 53644, 667983, 565598, 84,
971, 555498297, 60431, 6597, 856943893, 607815536, 4406, 79,
7, 28978746, 7537295, 6, 633, 345860066, 802, 1035131, 602, 2740,
8065, 61370968, 429953765, 981507, 8105, 343787257, 44782, 64184,
12981359, 123367978, 818775, 123745614, 25345654, 3, 800889,
3087787, 2, 143387, 552269, 285146, 86, 95, 95207, 88122, 999,
7, 206341870, 11725048, 7398, 9686, 2913230, 771, 56634, 267,
87834983, 1910, 79718, 172348, 5042905, 47066, 88747, 9668242,
8175066, 51, 4578, 359354, 942, 2244547, 4799667, 44, 245003,
31132, 25, 58351180, 1, 24331, 74483974, 46771553, 46750, 6,
3, 14, 31554881, 1, 13), Species = c("Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Delphinus_Delphinus", "Delphinus_Delphinus", "Delphinus_Delphinus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Grampus_griseus", "Grampus_griseus", "Grampus_griseus", "Grampus_griseus",
"Truncatus_Tursiops", "Truncatus_Tursiops", "Truncatus_Tursiops"
)), class = "data.frame", row.names = c(NA, -150L))
CodePudding user response:
The summarise()
function now lets you summarize multiple variables directly, using across()
. It looks like you want all the numeric variables, but you could also specify them directly (c(Low.Freq, High.Freq, Peak.Freq, Delta.Freq, Delta.Time, Peak.Time, Center.Freq, Start.Freq, End.Freq)
). You also needed ~
for the functions that refer to the variable with .
.
library(dplyr)
library(tidyr)
Summary_Statistics <- New_Acoustic_Parameters %>%
summarise(across(where(is.numeric), .fns =
list(Median = median,
Mean = mean,
n = sum,
SD = sd,
SE = ~sd(.)/sqrt(n()),
Min = min,
Max = max,
q25 = ~quantile(., 0.25),
q75 = ~quantile(., 0.75),
CV = cv
))) %>%
pivot_longer(everything(), names_sep = "_", names_to = c( "variable", ".value"))
# A tibble: 9 × 11
variable Median Mean n SD SE Min Max q25 q75 CV
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 ID 75.5 75.5 11325 43.4 3.55 1 150 38.2 113. 57.5
2 Low.Freq 30645 47718421. 7157763188 160229651. 13082696. 0 936779338 392. 5065917. 336.
3 High.Freq 6020. 33588147. 5038222034 126884782. 10360099. 0 825466852 78.5 941394. 378.
4 Peak.Freq 45487 74707306. 11206095904 202504621. 16534433. 0 999242982 436. 32466176. 271.
5 Delta.Freq 20268. 31612255. 4741838252 113350682. 9255044. 0 754038591 93.2 2282342. 359.
6 Delta.Time 16852. 64582719. 9687407814 208416077. 17017101. 0 946706344 70.5 4181862. 323.
7 Peak.Time 35342 64781815. 9717272204 190695860. 15570252. 1 964147297 790. 6424504. 294.
8 Start.Freq 39416. 54517987. 8177697991 173895386. 14198499. 0 940000382 77.2 2694535 319.
9 End.Freq 71317 41475068. 6221260243 132873661. 10849089. 1 856943893 430. 7667247. 320.