-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRDWWSV49.R
1880 lines (1362 loc) · 107 KB
/
RDWWSV49.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
## DW marathon results app
#-----------LIBRARY LOADING---------------
library(magrittr)
library(ggformula)
library(plyr)
library(ggplot2)
library(reshape2)
library(rsconnect)
library(stringr)
library(ggpubr)
library(shiny)
library(shinythemes)
library(tidyverse) # group of packages for data wrangling and visualisation (ggplot2)
library(lubridate) # convert date to R date format
library(DT) # Data Tables package for interactive html tables
library(RColorBrewer)
#--------------Thousand Mile Club data-------------
Thousand_data <- read.csv("ExportR10002019.csv") %>%
select(Crew, Total, Senior, Junior, Singles, VetJunior, Endeavour, Canadian, Folding,Kayak) %>%
arrange(Crew)
#--------------Read Comparison data-------------
Comparison_data2 <- read.csv("ExportRABCD2019.csv") %>%
select(Name, Year, Races, WatersideA, WatersideB, WatersideC,WatersideD, DWSenior, DWJunior, DWEndeavour, DWVetJunior, DWSingles) %>%
arrange(desc(Year))
Comparison_data <- read.csv("ExportRABCD2019.csv") %>%
select(Year, Races, WatersideA, WatersideB, WatersideC,WatersideD, DWSenior, DWJunior, DWEndeavour, DWVetJunior, DWSingles) %>%
arrange(desc(Year))
Comparison_data[Comparison_data==0] <- NA
Comparison_data[Comparison_data>3000] <- NA
commenus <- Comparison_data %>%
select(Year, WatersideA) %>%
arrange(desc(Year), WatersideA) %>%
unique()
Comparison_data$WatersideA <- as.numeric(as.character(Comparison_data$WatersideA))
Comparison_data$WatersideB <- as.numeric(as.character(Comparison_data$WatersideB))
Comparison_data$WatersideC <- as.numeric(as.character(Comparison_data$WatersideC))
Comparison_data$WatersideD <- as.numeric(as.character(Comparison_data$WatersideD))
Comparison_data$year <- as.numeric(as.character(Comparison_data$Year))
Comparison_data$DWSenior <- as.numeric(as.character(Comparison_data$DWSenior))
Comparison_data$DWJunior <- as.numeric(as.character(Comparison_data$DWJunior))
Comparison_data$DWEndeavour <- as.numeric(as.character(Comparison_data$DWEndeavour))
Comparison_data$DWVetJunior <- as.numeric(as.character(Comparison_data$DWVetJunior))
Comparison_data$DWSingles <- as.numeric(as.character(Comparison_data$DWSingles))
#Comparison_data$CompletionRate <- as.numeric(as.character(Comparison_data$CompletionRate))
#WaterA <- Comparison_data %>% select(WatersideA) %>% arrange(WatersideA) %>% unique()
#WaterB <- Comparison_data %>% select(WatersideB) %>% arrange(WatersideB) %>% unique()
#WaterC <- Comparison_data %>% select(WatersideC) %>% arrange(WatersideC) %>% unique()
#WaterD <- Comparison_data %>% select(WatersideD) %>% arrange(WatersideD) %>% unique()
#-------------WaterSide DATASET LOADING--------------------
wsmain_data <- read.csv("ExportRWS2019.csv") %>%
# mutate(WSNotes = case_when(is.na(WSNotes) ~ "Finish", TRUE ~ WSNotes)) %>%
mutate(WSTime = format(WSTime, format = "%H:%M:%S")) %>%
# select(WSBoatType, Year, WSRace, WSClass, WSName, WSPosition, WSTime, WSClub, WSDecimalTime, WSNotes) %>%
select(Year, WSRace, WSClass, WSName, WSPosition, WSTime, WSClub, WSDecimalTime, WSNotes) %>%
arrange(desc(Year), WSRace, WSClass, WSTime, WSPosition, WSName, WSTime) %>%
mutate(WSName2 = paste(WSName))
wsmain_data$WSPosition <- as.numeric(as.character(wsmain_data$WSPosition))
wsmain_data$Year <- as.numeric(as.character(wsmain_data$Year))
wsmain_data$WSRace %<>% as.character
#wsmain_data$WSBoatType %<>% as.character
wsmain_data$WSClass %<>% as.character
wsmain_data$WSRace %<>% as.character
wsmain_data$WSName %<>% as.character
wsmain_data$WSClub %<>% as.character
wsmain_data$WSNotes %<>% as.character
wstable_data <- wsmain_data %>%
# select(-WSName2, -WSBoatType)
select(-WSName2)
wsmenus <- wsmain_data %>%
select(Year, WSRace, WSClass) %>%
arrange(desc(Year), WSRace, WSClass) %>%
unique()
#menus <- main_data %>%
# select(Year, Ladies, Military, Class, SubClass, Trophies, BoatType) %>%
#arrange(desc(Year), Ladies, Military, Class, SubClass, Trophies, BoatType) %>%
#unique()
wsdivs <- wsmain_data %>%
select(WSClass) %>%
arrange(WSClass) %>%
unique()
wsdivsposition <- wsmain_data %>%
select(WSPosition) %>%
arrange(WSPosition) %>%
unique()
wsdivsclass <- wsmain_data %>%
select(WSClass) %>%
arrange(WSClass) %>%
unique()
wspaddlers <- wsmain_data %>%
select(WSName2) %>%
arrange(WSName2) %>%
unique()
#WSBoatTypes <- wsmain_data %>%
# select(WSBoatType) %>%
#arrange(WSBoatType) %>%
# unique()
WSATime <- wsmain_data %>%
select(WSTime) %>%
arrange(WSTime) %>%
unique()
wsAddYears <- wsmain_data %>%
select(Year) %>%
arrange(desc(Year)) %>%
unique()
wstop3s <- wsmain_data %>%
select(WSName2, WSPosition) %>%
filter(WSPosition %in%(c(1,2,3))) %>%
group_by(WSName2) %>%
add_tally() %>%
select(-WSPosition) %>%
unique()
wscompleteCount <- wsmain_data %>%
select(WSName2, WSPosition) %>%
filter(!is.na(WSPosition)) %>%
select(-WSPosition) %>%
group_by(WSName2) %>%
add_tally() %>%
unique()
wsfaveLadiess <- wsmain_data %>%
select(WSName2, WSRace) %>%
group_by(WSName2, WSRace) %>%
add_tally() %>%
filter(n>1) %>%
arrange(WSName2, -n) %>%
unique()
# Weather Table
WMain_Data <- read.csv("ExportRWeather2019.csv") %>% select(EasterSunday, Year, SeniorFlow, FirstSenior, MaxWind, MinTemperature, CompletionRate, Regression_D,Regression_C,Regression_B,Regression_A) %>%
arrange(desc(Year),desc(SeniorFlow), desc(FirstSenior), desc(MaxWind), desc(MinTemperature), desc(CompletionRate) ) %>% unique()
Flow <- WMain_Data %>% select(SeniorFlow) %>% arrange(SeniorFlow) %>% unique()
FirstPlace <- WMain_Data %>% select(FirstSenior) %>% arrange(FirstSenior) %>% unique()
Wind <- WMain_Data %>% select(MaxWind) %>% arrange(MaxWind) %>%unique()
Temp <- WMain_Data %>% select(MinTemperature) %>%arrange(MinTemperature) %>% unique()
Completion <- WMain_Data %>% select(CompletionRate) %>% arrange(CompletionRate) %>% unique()
WMMain_Data <- read.csv("ExportRWeather2019.csv") %>% select(Year, SeniorFlow, MaxWind, MinTemperature, CompletionRate) %>%
arrange(desc(Year),desc(SeniorFlow), desc(MaxWind), desc(MinTemperature), desc(CompletionRate) ) %>% unique()
# DW Data
main_data <- read.csv("ExportRDW2019.csv")%>%
select(Year, Class, Position, Name, Club, Time, Flow, Veteran, Ladies, BoatType, Military, SubClass, Trophies, Record, DecimalTime, Notes, C1, Club1,Country,Flow) %>%
arrange(desc(Year), Position, Time, Ladies, Military, Trophies,Veteran,desc(Flow)) %>%
mutate(Name2 = paste(Name))
main_data$Year <- as.numeric(as.character(main_data$Year))
main_data$SubClass %<>% as.character
main_data$BoatType %<>% as.character
main_data$Class %<>% as.character
main_data$Ladies %<>% as.character
main_data$Military %<>% as.character
main_data$Club %<>% as.character
main_data$Notes %<>% as.character
main_data$Name %<>% as.character
main_data$Trophies %<>% as.character
main_data$Position %<>% as.numeric(as.character(main_data$Position))
main_data$Flow %<>% as.numeric(as.character(main_data$Flow))
table_data <- main_data %>%
select(-Name2,-C1)
menus <- main_data %>%
select(Year, Ladies, Military, Class, SubClass, Trophies, BoatType) %>%
arrange(desc(Year), Ladies, Military, Class, SubClass, Trophies, BoatType) %>%
unique()
table_dataCrews <- main_data %>%
select(Year, Class, Name, Position, Time, Flow, Club, Veteran,Ladies,Military,SubClass, Trophies, BoatType) %>%
arrange(desc(Year), Position)
table_dataRecords <- main_data %>%
select(Record, Year, Class, Name, Position, Time, Club) %>%
# select(Record !="")%>%
filter(Record != "") %>%
arrange(Class, Record)
table_dataExceptions <- main_data %>%
select(Year, Class, Name, Time, Club, Notes, Record) %>%
# select(Record !="")%>%
filter(Notes != "") %>%
arrange(Year, Class)
table_dataVisitors <- main_data %>%
select(Country, Year, Class, Name, Time, Club, Trophies, Record) %>%
filter(Country != "") %>%
arrange(Country, Year, Class)
wstable_dataCrews <- wsmain_data %>%
select(Year, WSRace, WSClass, WSPosition, WSName, WSClub, WSTime) %>%
arrange(desc(Year))
#lists in order
paddlers <- main_data %>%
select(Name2) %>%
arrange(Name2) %>%
unique()
boattypes <- main_data %>%
select(BoatType) %>%
arrange(BoatType) %>%
unique()
divs <- main_data %>%
select(Military) %>%
arrange(Military) %>%
unique()
divssc <- main_data %>%
select(SubClass) %>%
arrange(SubClass) %>%
unique()
divsM <- main_data %>%
select(Military) %>%
arrange(Military) %>%
unique()
divsposition <- main_data %>%
select(Position) %>%
arrange(Position) %>%
unique()
divsclass <- main_data %>%
select(Class) %>%
arrange(Class) %>%
unique()
divssubclass <- main_data %>%
select(SubClass) %>%
arrange(SubClass) %>%
unique()
divsLadies <- main_data %>%
select(Ladies) %>%
arrange(Ladies) %>%
unique()
divsclub <- main_data %>%
select(Club) %>%
arrange(Club) %>%
unique()
divstrophies <- main_data %>%
select(Trophies) %>%
arrange(Trophies) %>%
unique()
top3s <- main_data %>%
select(Name2, Position) %>%
#arrange(Class,Position, Year)%>%
group_by(Name2) %>%
add_tally() %>%
select(-Position) %>%
unique()
top3clubs <- main_data %>%
select(Club, Position) %>%
group_by(Club) %>%
add_tally() %>%
select(-Position) %>%
unique()
faveLadiess <- main_data %>%
select(Name2, Ladies) %>%
group_by(Name2, Ladies) %>%
add_tally() %>%
filter(n>1) %>%
arrange(Name2, -n) %>%
unique()
data_setsAGE <- c("Senior","Veteran","Century","Over 50")
data_setsdw <- c("DW","WS","Comparison","Weather")
data_sets <- c("Army","Canadian","Century","Civilian","European","Ladies","Ladies C2","Mixed","Navy","Over 50","Overseas","Police","RAF","Reserve","Scouts","Services","Tyne","U17 School","University","Vet Ladies","Veteran")
data_setsM <- c("Army","Navy","RAF","Army Reserve","Navy Reserve","RAF Reserve","Civilian Reserve")
WatersideATimeList <- c("1.5","1.6","1.7","1.8","1.9","2.0","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","3.0","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","4.0")
WatersideRaceL <- c("A","B","C","D","S")
WatersideDTimeList <- c("4.0","4.25","4.5","4.75","5.0","5.25","5.5","5.75","6.0","6.25","6.5","6.75","7.0","7.25","7.5","7.75","8.0")
TrophyList <- c("Army","Canadian","Century","Civilian","European","Home Built","Ladies","Lee","Mixed","Navy","Over 50","Overseas","Police","RAF","Reserve","Scouts","Services","Trophies","Tyne","U17 School","University","Vet Ladies","Veteran")
#-------------UI SECTION ----
ui <- fluidPage(
#shinythemes::themeSelector(),
theme = shinytheme("flatly"),
list(tags$head(HTML('<link rel="icon", href="DW Logo.jpg",
type="image/png" />'))),
div(style="padding: 1px 0px; width: '100%'",
titlePanel(
title="", windowTitle="DW and WS Results Database"
)
),
navlistPanel(widths = c(2, 10),
# fluidRow(sidebarLayout(
# sidebarPanel(column(12, tags$img(src="P1030108C.jpg", width = "100%")),
# (column(12, tags$h4("Congratulations to all those Completing this gruelling event:")))),
# fluidRow(column(10, tags$h1("DW and Waterside Results Database in the R programming language")),
# column(2, tags$img(src="DW Logo.JPG", height = "80px", align = "left"))),
tabPanel("Introduction",
fluidRow(column(10, tags$h2("Welcome to the DW and Waterside Results Database with R programming")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
#column(12, tags$h2("Welcome to the DW and WS Results Database in the R Programming Language " )),
fluidRow(sidebarLayout(
sidebarPanel(column(12, tags$img(src="P1030108C.jpg", width = "100%")),
(column(12, tags$h4("Congratulations to all those Completing this gruelling event:"))),
(column(12, tags$img(src="1000 Mile Club.jpg", width = "100%"))),
(column(12, tags$h4("The 1000 Mile Club 2011")))),
mainPanel
(fluidRow(column(12, tags$h4("What Why How"))),
fluidRow(column(12, tags$h4("What - This application is written in R code following the British Canoeing MRC app for Race Results."))),
fluidRow(column(12, tags$h4("Why - It is written in R code to enable dynamic graphics and statistics to be generated by the user. The provision of an additional code base could offer an alternative future for the DW results database subject to a willing database administrator."))),
fluidRow(column(12, tags$h4("How - The IBM Notes database (Web enabled in 2005) generates structured CSV files which are used by the application. Please note that all comments and corrections must be made using the Master Notes system. The R system data will only be updated annually."))),
fluidRow(column(12, tags$h4("Code - The code is available to interested parties on GitHub."))),
fluidRow(column(12, tags$h4("Please note that the database only shows completions. It follows the conventions of David Keane; a past DW Chairman who collated the results and includes individuals who completed the course but for whom the existing rules did not allow formal participation. "))),
fluidRow(column(12, tags$h5("Acknowledgments-James Smythe (British Canoeing) and Callum Staff (data.giving.decisions)"))),
fluidRow(column(12, tags$h5("Version 4.5 Jan 2020"))))))),
navbarMenu("DW Section",
tabPanel("Thousand Mile Paddlers",
fluidRow(column(12, tags$h4("The list includes paddlers who have completed the course 8 or more times irrespective of their class or the year. It therefore includes paddlers who are not recognised by DW"))),
# Create a new row for the table.
fluidRow(column(12, DT::dataTableOutput("tmctable")))),
tabPanel("Thousand Mile Chart By Class",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("The list includes paddlers who have completed the course 8 or more times irrespective of their class or the year. It therefore includes paddlers who are not recognised by DW"))),
#fluidRow(column(2,selectInput("ClassTC","Pick one or more classes",c("All",unique(menus$Class)),selected = "All",multiple = TRUE))),
fluidRow(column(12, plotOutput("tmcchart"))),
fluidRow(column(12, plotOutput("tmcchart1"))),
fluidRow(column(12, plotOutput("tmcchart2"))),
fluidRow(column(12, plotOutput("tmcchart3"))),
fluidRow(column(12, plotOutput("tmcchart4"))),
fluidRow(column(12, plotOutput("tmcchart5")))),
tabPanel("Thousand Mile Chart By Boat Type",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("The list includes paddlers who have completed the course 8 or more times irrespective of their class or the year. It therefore includes paddlers who are not recognised by DW"))),
# Create a new row for the table.
# fluidRow(column(12, plotOutput("tmcchartBT"))),
fluidRow(column(12, plotOutput("tmcchartBT1")))),
# tabPanel("Paddler History",
# fluidRow(
# column(7, tags$h3(textOutput("paddlername"), tags$h5("Please note, paddlers may appear as duplicates in this system if they have raced for multiple clubs or if their names were entered incorrectly at races"))),
# column(5,selectInput("paddler", "Choose Paddler: (hit backspace to clear and type in a name)", c(unique(paddlers$Name2)), selected = "JAMES BELL ( LON )", multiple = FALSE))
# ),
# fluidRow(column(3, tags$h3("Races Entered"), tags$h4(textOutput("no_races")), tags$h4(textOutput("comprate"))),
# column(9, plotOutput("races"))
# ),
#
# fluidRow(column(3, tags$h3("Positions"), tags$h4(textOutput("top3s")), tags$h4(textOutput("medals"))),
# column(9, plotOutput("positions"))
# ),
#
# fluidRow(column(3, tags$h3("Home & Away"), tags$h4("Top races by no. of entries"), tableOutput("faveraces")),
# column(9, plotOutput("travels"))
# )
# ),
tabPanel("DW Crews & Clubs Table",
fluidRow(column(12, tags$h4("DW Crews & Clubs - Please click choices and press Delete to change. - Note: A Position of 0 indicates a completion outside the normal race rules."))),
fluidRow(column(2,selectInput("YearCC", "Pick Year",c("All",unique(menus$Year)),selected = "All",multiple = FALSE)),
column(2,selectInput("ClassCC","Pick one or more classes",c("All",unique(menus$Class)),selected = "All",multiple = TRUE)),
column(2,selectInput("LadiesCC","Ladies or Mixed",c("All",unique(menus$Ladies)),selected = "All",multiple = TRUE)),
column(2,selectInput("divCC","Civilian or Military",c("All",unique(menus$Military)),selected = "All",multiple = TRUE)),
column(2,selectInput("BTCC", "Choose Boat Type:", c("All",unique(menus$BoatType)), selected = "All", multiple = TRUE))),
fluidRow(column(12, DT::dataTableOutput("tableCrews"))),
fluidRow(column(12, tags$h5("The value shown for Flow is more representative of that for the Senior Class. The Flow can change significantly over the course of the race")))
),
tabPanel("DW Records Table",
fluidRow(column(12, tags$h4("DW Records Table - Please note this table includes records that are not formally recognised by DW"))),
fluidRow(column(12, DT::dataTableOutput("tableRecords"))),
fluidRow(column(12, tags$h4("Please Note the Olderst Veteran Crew is (155 years) aged 74 & 81 - The oldest Veteran ladies Crew is (117 years) - These records are based on age and not time.
These records were set when Senior competitors all raced in the same Class. The Introduction of the Endeavour class now prevents a Senior crew from taking more than 1 day ")))),
tabPanel("DW Records Chart",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("DW Records Chart"))),
column(3,selectInput("attRecordclass", "Choose Class", c(unique(divsclass$Class)), selected = "Senior", multiple = TRUE)),
fluidRow(column(12, plotOutput("Record")))),
tabPanel("DW Exceptions Table",
fluidRow(column(12, tags$h4("DW Exceptions Table - Please note this table includes individuals who completed the course but for whom the existing rules may not have allowed formal participation."))),
fluidRow(column(12, DT::dataTableOutput("tableExceptions")))),
#fluidRow(column(12, tags$h4("Please Note the Olderst Veteran Crew is (155 years) aged 74 & 81 - The oldest Veteran ladies Crew is (117 years) - These records are based on age and not time.
# These records were set when Senior competitors all raced in the same Class. The Introduction of the Endeavour class now prevents a Senior crew from taking more than 1 day ")))),
tabPanel("DW Paddler History",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h3(textOutput("DW Paddlername"), tags$h4("Please check the DW Database for the correct Name. - Note: A Position of 0 indicates a completion outside the normal race rules"))),
column(12,textInput("paddler", "Enter Paddler - The Name is Case Sensitive (Last Name First Name/Initial)", value = ""))),
column(12, tags$h3(textOutput("DW Paddlername 2"), tags$h5("You may check for crew doubles if you use the exact format shown in the DW Crews and Clubs table eg Hendron Richard & King James
, Cornish Tim & Greenham Brian, Lewis Richard & Phillips Mark C, Morrissey Jim, White Ian. These all demonstrate a good relationship between Time and Flow.
They also illustrate that fast paddlers are more likely to benefit form Flow."))),
fluidRow(column(12, plotOutput("positions"))),
fluidRow(column(12, tags$h5("The value shown for Flow is more representative of that for the Senior Class. The Flow can change significantly over the course of the race")))
),
# tabPanel("DW Paddler History vs Flow",
# fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
# column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
# fluidRow(
# column(12, tags$h3(textOutput("DW Paddlername Flow"), tags$h4("These charts indicates the effect of flow on individual paddlers. The Boat Type is also illustrated")))),
# column(6, tags$h4("Please click choices and press Delete to change"))),
# fluidRow(
# column(6,textInput("paddlerF", "Enter Paddler - The Name is Case Sensitive (Last Name First Name/Initial)", value = ""))),
# column(3, tags$h4("Please click choices and press Delete to change")),
#column(6,selectInput("att2boatF", "Choose Boat Type", c(unique(boattypes$BoatType)), selected = "Kayak", multiple = TRUE))),
#fluidRow(column(12, plotOutput("positionsF"))),
# fluidRow(column(12, tags$h4("These displays may be more interesting to those who have completed the course more than once. ")))
#
# ),
tabPanel("DW Club History",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h3(textOutput("DW Clubname"), tags$h4("Please check the DW Database for the correct Name. - Note: A Position of 0 indicates a completion outside the normal race rules"))),
column(12,textInput("regclub", "Enter Club - The Name is Case Sensitive", value = ""))),
fluidRow(column(12, plotOutput("clubpositions")))
),
tabPanel("DW Clubs",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("DW Clubs"))),
fluidRow(
column(12, tags$h3(textOutput("DW Clubs"))),
column(3,selectInput("attclubyear","Pick Year(s)",c(unique(menus$Year)),selected = "2019",multiple = TRUE)),
column(3,selectInput("attclubclass", "Choose Class(es)", c(unique(divsclass$Class)), selected = "Senior", multiple = TRUE))),
fluidRow(column(12, plotOutput("clubplot"))),
column(12, tags$h4("The largest group (Independents) have not indicated membership of a club and are excluded. The chart only includes clubs with a total of more than 24 completions based on the 1st named club"))),
tabPanel("DW Attendance",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("Civilian and Military Attendance - Click choices and press Delete to change")),
column(3,selectInput("attdiv", "Choose Civilian and/or Arms", c(unique(menus$Military)), selected = "Civilian", multiple = TRUE)),
column(3,selectInput("attclass", "Choose Class", c(unique(divsclass$Class)), selected = "Senior", multiple = TRUE)),
column(3,selectInput("region", "Choose Boat Type:", c(unique(boattypes$BoatType)), selected = "Kayak", multiple = TRUE)),
column(3,selectInput("attyear","Pick one or more Years",c(unique(menus$Year)),selected = "2019",multiple = TRUE))),
fluidRow(column(12, plotOutput("Mattendance")))),
tabPanel("DW Class by Year",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("Please click choices and press Delete to change")),
column(3,selectInput("att2class", "Choose Class", c(unique(menus$Class)), selected = "Senior", multiple = TRUE))),
fluidRow(column(12, plotOutput("Mattendance1"))),
fluidRow(column(12, tags$h4("Shows the number of boats completing the course each year"))),
fluidRow(column(12, plotOutput("Mattendance1N"))),
fluidRow(column(12, tags$h4("Shows the total number of boats completing the course")))
),
tabPanel("DW Military by Year",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("Please click choices and press Delete to change")),
column(3,selectInput("attMArm", "Choose Arm", data_setsM, selected = "Army", multiple = TRUE)),
column(3,selectInput("attMclass", "Choose Class", c(unique(menus$Class)), selected = "Senior", multiple = TRUE))),
fluidRow(column(12, plotOutput("MattendanceM"))),
fluidRow(column(12, tags$h4("Shows the number of boats completing the course"))),
fluidRow(column(12, plotOutput("MattendanceMP"))),
fluidRow(column(12, tags$h4("Shows the Positions of boats completing the course")))),
tabPanel("DW Sex by Year",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("Please click choices and press Delete to change")),
column(3,selectInput("attLclass", "Choose Sex", c(unique(menus$Ladies)), selected = "Male", multiple = TRUE)),
column(3,selectInput("attL1class", "Choose Class", c(unique(menus$Class)), selected = "Senior", multiple = TRUE))),
fluidRow(column(12, plotOutput("MattendanceL"))),
fluidRow(column(12, tags$h4("Shows the number of boats completing the course"))),
fluidRow(column(12, plotOutput("MattendanceLS"))),
fluidRow(column(12, tags$h4("Shows the positions of boats completing the course by sex")))),
tabPanel("DW Minor Subclass by Year",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("DW Minor SubClass"))),
fluidRow(
column(12, tags$h4("Please click choices and press Delete to change")),
column(3,selectInput("attSubclass", "Choose Subclass", c(unique(divssubclass$SubClass)), selected = "Overseas", multiple = TRUE)),
column(3,selectInput("attL2class", "Choose Class", c(unique(menus$Class)), selected = "Senior", multiple = TRUE))),
fluidRow(column(12, plotOutput("MattendanceSL"))),
fluidRow(column(12, tags$h4("Shows the number of boats completing the course. The Subclass Options have been reduced for this Chart. Age, Services and Sex subclasses are shown separately in the application"))),
fluidRow(column(12, plotOutput("MattendanceSLT"))),
fluidRow(column(12, tags$h4("Shows the total number of boats completing the course. ")))),
tabPanel("DW Age group by Year",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("DW Age group by Year"))),
fluidRow(
column(12, tags$h4("Please click choices and press Delete to change")),
column(4,selectInput("attL2classCL", "Choose Class", c(unique(menus$Class)), selected = "Senior", multiple = TRUE)),
column(4,selectInput("attSubclassSEX", "Choose Male, Female or Mixed", c(unique(divsLadies$Ladies)), selected = "Male", multiple = TRUE)),
column(4,selectInput("attSubclassBOAT", "Choose Boat Type", c(unique(boattypes$BoatType)), selected = "Kayak", multiple = TRUE))),
fluidRow(column(12, plotOutput("MattendanceSLO"))),
fluidRow(column(12, tags$h4("Shows the number of boats completing the course."))),
fluidRow(column(12, plotOutput("MattendanceSLOP"))),
fluidRow(column(12, tags$h4("Shows the Positions of boats completing the course by Age group.")))),
tabPanel("DW Boat Type by Year",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("Boat types include Kayak, Canadian and Folding Boats"))),
fluidRow(
column(12, tags$h4("Please click choices and press Delete to change")),
column(3,selectInput("att2boat", "Choose Boat Type", c(unique(boattypes$BoatType)), selected = "Kayak", multiple = TRUE))),
fluidRow(column(12, plotOutput("Mattendance1BT"))),
fluidRow(column(12, tags$h4("Shows the number of boats completing the course")))),
tabPanel("DW Winning Times",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("DW Winning Times")),
column(3,selectInput("atttimeclass", "Choose Class", c(unique(divsclass$Class)), selected = "Senior", multiple = TRUE)),
column(3,selectInput("Position", "Choose Position:", c(unique(divsposition$Position)), selected = "1", multiple = FALSE)),
column(3,selectInput("attnyear","Plot after Year",c(unique(menus$Year)),selected = "1948",multiple = FALSE))),
fluidRow(column(12, plotOutput("Time"))),
fluidRow(column(12, tags$h4("Shows Times for Place over selected years. NB Before 1971 No bank feeding was permitted. The Endeavour Crews have been included to illustrate the fastest time for the Class")))),
tabPanel("DW Trophy Times",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("Trophy Times")),
column(3,selectInput("attTrophytimeclass", "Choose Class", c(unique(divsclass$Class)), selected = "Senior", multiple = TRUE)),
column(3,selectInput("attTrophies", "Choose Trophy:", TrophyList, selected = "Reserve", multiple = FALSE))),
fluidRow(column(12, plotOutput("TrophyTime"))),
fluidRow(column(12,tags$h4("Where a Trophy is selected all trophies won by the crew are shown. Senior Doubles Veteran is for the Oldest competitor to complete the course, Lee is over 35, Centuary is both paddlers over 50. The Services Trophy will be won by a regular in either Army, Navy or RAF.")))),
tabPanel("DW Visitors Table",
fluidRow(column(12, tags$h4("DW Visitors Table."))),
fluidRow(column(12, DT::dataTableOutput("tableVisitors")))),
tabPanel("DW Visitors Chart",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("DW Visitor Countries"))),
fluidRow(column(12, plotOutput("Visitor")))),
tabPanel("DW Distribution",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("Distribution shows the range of times for the Year and Class")),
column(3,selectInput("attnyear2","Plot for Year",c(unique(menus$Year)),selected = "2019",multiple = TRUE)),
column(3,selectInput("atttimeclass1", "Choose one or more Classes", c(unique(divsclass$Class)), selected = "Senior", multiple = TRUE)),
fluidRow(column(12, plotOutput("Distribution")))),
fluidRow(column(12, tags$h4("The box plot(3) shows statistical data on a plot in which a rectangle is drawn to represent the second and third quartiles with a horizontal line inside to indicate the median value. The lower and upper quartiles are shown as vertical lines top and bottom of the rectangle. Points above or below the vertical lines are outliers; perhaps because they missed the tide")))),
tabPanel("DW Completion Rate",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("Completion Rates - These plots are for Senior Crews"))),
fluidRow(column(12, plotOutput("CompletionR"))),
fluidRow(column(12, plotOutput("CompletionR1"))),
column(12, tags$h4("These plots suggest the largest factor in low completion rates is a strong head wind. Temperatures below zero also affect completion rates. Flow rates either high or
low do not seem to be critical provided the race is considered safe to complete")))),
navbarMenu("Waterside Section",
# tabPanel("WaterSide Database",
# fluidRow(column(12, tags$h4("Please click choices and press Delete to change"))),
# fluidRow(column(4,selectInput("WSYear","Pick one or more Years",c("All",unique(wsmenus$Year)),selected = "All",multiple = TRUE)),
# column(4,selectInput("WSRace","Select Race",c("All",unique(wsmenus$WSRace)),selected = "All",multiple = TRUE)),
# column(4,selectInput("WSCl","Select Class",c("All",unique(wsmenus$WSClass)),selected = "All",multiple = TRUE))),
# # Create a new row for the table.
# fluidRow(column(12, DT::dataTableOutput("WStable")))),
tabPanel("WaterSide Crews & Clubs",
fluidRow(column(12, tags$h4("Please click choices and press Delete to change"))),
fluidRow(column(4,selectInput("WSYear","Pick one or more Years",c("All",unique(wsmenus$Year)),selected = "All",multiple = TRUE)),
column(4,selectInput("WSCCRace", "Choose one or more Races", c("All",unique(wsmenus$WSRace)), selected = "All", multiple = TRUE)),
column(4,selectInput("WScl", "Choose one or more Classes", c("All",unique(wsmenus$WSClass)), selected = "All", multiple = TRUE))),
fluidRow(column(12, DT::dataTableOutput("WStable")))),
tabPanel("WS Paddler History",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("WS Paddler History")),
column(12, tags$h3(textOutput("WS paddlerName"))),
column(6,textInput("WSpaddler", "Enter Paddler - Last Name First Name/Initial", value = "")),
column(6,selectInput("WSPRace", "Choose one or more Races", WatersideRaceL, selected = "A", multiple = TRUE))),
fluidRow(column(3, tags$h4("WS Positions"), tags$h4(textOutput("WS top3s")), tags$h4(textOutput("WS medals")))),
fluidRow(column(12, plotOutput("WSPositions")))),
tabPanel("WS Club History",
fluidRow(
column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("WS Club History")),
column(12, tags$h3(textOutput("WS Clubname"), tags$h4("Note: A Position of 0 indicates a completion outside the normal race rules"))),
column(6,textInput("WSregclub", "Enter Club - The Name is Case Sensitive", value = "")),
column(6,selectInput("WSPCRace", "Choose one or more Races", WatersideRaceL, selected = "A", multiple = TRUE))),
fluidRow(column(12, plotOutput("WSclubpositions")))
),
tabPanel("WS Clubs",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow( column(12, tags$h4("WaterSide Clubs")),
column(12, tags$h3(textOutput("WS Clubs"))),
column(3,selectInput("attWSclubyear","Pick Year(s)",c(unique(menus$Year)),selected = "2019",multiple = TRUE)),
column(6,selectInput("WSCRace", "Choose one or more Races", WatersideRaceL, selected = "A", multiple = TRUE))),
fluidRow(column(12, plotOutput("WSclubplot")))),
tabPanel("WS Attendance",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("Attendance Numbers for each Race by Class(s)")),
column(12, tags$h4("Please click choices and press Delete to change")),
column(6,selectInput("WSclass", "Choose one or more Classes", c(unique(wsdivs$WSClass)), selected = "K2 Senior", multiple = TRUE)),
column(6,selectInput("wsattyear","Pick one or more Years",c("All",unique(wsmenus$Year)),selected = "2019",multiple = TRUE))),
fluidRow(column(12, plotOutput("WSattendance")))),
tabPanel("WS Class by year",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("Please click choices and press Delete to change")),
column(6,selectInput("WS2class", "Choose one or more Classes", c(unique(wsdivs$WSClass)), selected = "K2 Senior", multiple = TRUE)),
column(6,selectInput("WSRace2", "Choose one or more Races", WatersideRaceL, selected = "A", multiple = TRUE))),
fluidRow(column(12, plotOutput("WS1attendance1")))),
tabPanel("WS Winning Times",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("WS Winning Times")),
column(3,selectInput("attWStimeclass", "Choose Class", c(unique(wsdivsclass$WSClass)), selected = "K2 Senior", multiple = TRUE)),
column(3,selectInput("WSPosition", "Choose Position:", c(unique(wsdivsposition$WSPosition)), selected = "1", multiple = FALSE)),
column(3,selectInput("attWSnyear","Plot after Year",c(unique(menus$Year)),selected = "1990",multiple = FALSE)),
column(3,selectInput("WSWSRace2", "Choose Race", WatersideRaceL, selected = "A", multiple = FALSE))),
fluidRow(column(12, plotOutput("WSTime"))),
fluidRow(column(12, tags$h4("Shows Times for Place over selected years. NB Waterside Races Started in 1968. Results are not available for all Years")))),
tabPanel("WS A, B, C, D,Comparison",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("These plots are of all crews and compare WS times for A B C & D in the selected year. The plots require data for all races in the selected year or an error message will be generated")),
column(6,selectInput("comattyear","Pick Year",c(unique(commenus$Year)),selected = "2019",multiple = FALSE)),
column(3,selectInput("MaxA","With Race A Time below (hours)",WatersideATimeList,selected = "2.5",multiple = FALSE))
),
fluidRow(column(12, plotOutput("WCompGraphs"))),
column(12, tags$h4("Faster boats are more predictable. As the time for Waterside A is reduced the plotted line appears as a better fit. These plots compare times for Waterside A against Waterside B,C and D. The regression line has been plotted with the intercept to zero"))),
tabPanel("WS & DW Crews Table",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("The Display Lists WS Times with DW Time for crews in each year where available"))),
fluidRow(column(12, DT::dataTableOutput("WStable2")))),
tabPanel("WS Distribution",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("Distribution shows the range of times for the Year, Race and Class")),
column(12, tags$h4("WS Distribution")),
column(3,selectInput("attnwsyear2","Plot for Year(s)",c(unique(menus$Year)),selected = "2019",multiple = TRUE)),
column(3,selectInput("attDrace","Choose Race",c(unique(wsmenus$WSRace)),selected = "A",multiple = TRUE)),
column(3,selectInput("attWSclass1", "Choose one or more Classes", c(unique(wsmenus$WSClass)), selected = "K2 Senior", multiple = TRUE)),
fluidRow(column(12, plotOutput("WSDistribution")))),
fluidRow(column(12, tags$h4("The box plot(2) shows statistical data on a plot in which a rectangle is drawn to represent the second and
third quartiles with a horizontal line inside to indicate the median value. The lower and upper quartiles are shown as vertical lines top and
bottom of the rectangle. Points above or below the vertical lines are outliers"))))),
navbarMenu("DW times - WS, Flow and Weather",
tabPanel("DW time vs Place",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("DW time vs Place"))),
column(3,selectInput("attclassTP", "Choose Class", c(unique(divsclass$Class)), selected = "Senior", multiple = FALSE)),
column(3,selectInput("attyearTP","Pick one or more Years",c(unique(menus$Year)),selected = "2019",multiple = TRUE)),
# column(3,selectInput("PositionTP1", "Choose Position:", c(unique(divsposition$Position)), selected = "100", multiple = FALSE)),
# column(3,selectInput("PositionTP1", "Limit display up to Position:", c(unique(divsposition$Position)), selected = "100", multiple = FALSE)),
fluidRow(column(12, plotOutput("GraphsTP"))),
fluidRow(column(12, plotOutput("GraphsTPL"))),
fluidRow(column(12, tags$h4("These charts illustrate that different years show different profiles which can be a measure of the race conditions.
A sharp increase in times for those at the back of the field suggest they missed the tide and were caught by the tide window.
The number of boats displayed may be a reflection of the number entered or a lower completion rate")))),
tabPanel("DW 1st vs Weather",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("Weather Factors affecting Winning Times"))),
fluidRow(column(12, plotOutput("Graphs"))),
fluidRow(column(12, tags$h4("These charts illustrate that for the Winning Senior Crew the most important factor for race times is flow.
Strong winds will also affect times and completion rates. NB Wind direction or duration is not known")))),
tabPanel("DW 1st vs Flow",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("How Flow, Temperature and Wind can both affect completion rates and DW Winning Times. These charts allow you to select the different weather parameters.")),
column(3,selectInput("attnfyear","Select a Year after 1970 for plot",c(unique(menus$Year)),selected = "1970",multiple = FALSE)),
column(3,selectInput("comrate","With Completion Rate above",c(unique(Completion$CompletionRate)),multiple = FALSE)),
column(3,selectInput("windg","With Wind below",c(unique(Wind$MaxWind)),selected = "46.5",multiple = FALSE)),
column(3,selectInput("tempg","With Temp above",c(unique(Temp$MinTemperature)),selected = "-2",multiple = FALSE))),
fluidRow(column(12, plotOutput("FGraphs"))),
fluidRow(column(12, tags$h4("The formula on charts indicate that first place with no flow would be about 18.5 hours. 100cm/sec flow reduces the time by 1.59 hours
(Before your changes). You may change the parameters for these plots but weather is not available before 1970.")))),
tabPanel("DW Weather Table",
fluidRow(column(12, tags$h4("The Regression Number, when multipled by the WS time, gives the average time for Senior Crews in DW for the year and conditions"))),
fluidRow(column(12, DT::dataTableOutput("Wtable")))),
tabPanel("DW Weather Box Plots",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("Weather Box Plots Showing the Range of conditions"))),
fluidRow(column(12, plotOutput("WeatherBox"))),
fluidRow(column(12, tags$h4("Box plots show statistical data where a rectangle is drawn to represent the second and third quartiles with a horizontal line inside to
indicate the MEDIAN value. The lower and upper quartiles are shown as vertical lines top and bottom of the rectangle. Points above or below the vertical lines are outliers.
Mean, MEDIAN, and mode are three kinds of averages. ... The mean is the average you're used to, where you add up all the values and then divide by the number of values. The MEDIAN is the middle value in the list of numbers.
")))),
tabPanel("DW Weather vs Year",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(column(12, tags$h4("DW Weather vs Year with the River Thames Status colour codes"))),
fluidRow(column(12, plotOutput("WeatherYear"))),
fluidRow(column(12, tags$h4("A Green Status is defined as less than 65 cm/sec. Amber is Less than 100 cm/sec and Red is above 120 cm/sec with Red/Amber (shown as Orange) between 99 and 120.
Note that the unofficial record was set in 2000 but the race was abandoned. The race was cancelled in 2001 due to a foot and mouth outbreak.
In 2018 the race was stopped at Reading. The official record was set in 1979. Please be aware that flow rates change over the race weekend and the chart is most representative of the Senior event" ))) ,
fluidRow(column(12, tags$h4("Kingston Flow Rate Web Site", h5("Shoothill Gauge Map", a("Current Reading", target="_blank", href="http://www.gaugemap.co.uk/#!Map/Summary/1249/1382")) )))
),
#A Green Status is defined as less than 65 cm/sec. Amber is Less than 100 cm/sec and Red is above 99 cm/sec with Red/Amber between 99 and 120. Note that the unofficial record was set in 2000 but the race was abandoned. The race was cancelled in 2001 due to a foot and mouth outbreak. In 2018 the race was stopped at Reading. The official record was set in 1979.
tabPanel("DW Times vs Waterside D",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),
column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(
column(12, tags$h4("Enter your time for Waterside D. The line will then show the average times for Senior crews depending on flow. You can vary the conditions to see if there is any effect")),
column(3,selectInput("WSDT","Please select your nearest WS D time",WatersideDTimeList,selected = "5.0",multiple = FALSE)),
column(3,selectInput("comrateR","With Completion Rate above",c(unique(Completion$CompletionRate)),multiple = FALSE)),
column(3,selectInput("windgR","With Wind below",c(unique(Wind$MaxWind)),selected = "46.5",multiple = FALSE)),
column(3,selectInput("tempgR","With Temp above",c(unique(Temp$MinTemperature)),selected = "-2",multiple = FALSE))),
fluidRow(column(12, plotOutput("FGraphsR"))),
fluidRow(column(12, tags$h4("The formula and line shown on the chart indicates the typical time for a Senior crew with different conditions and is based on hundreds of crews over many years.
The conditions on Waterside D will be a major factor in these indicators and thus a tail wind and a full canal will reduce race times. This will then affect predicted times for DW.
It follows that the conditions on DW will also be a major factor in times and again a tail wind and a full canal may improve your time but of course a strong head wind will lead to slower times"))),
fluidRow(column(12, tags$h4("The objective is to demonstrate what times might be expected in the prevailing conditions depending on your WS D time.
The points on the chart are plotted from the regression formula (best fit formula) shown on the DW Weather tab. They show the value when a race was run under the parameters set.
The regression points can be above or below the line depending. The line is the average of all races. The points provide an indication of the variation from the line which depend on the conditions on the individual race."))),
fluidRow(column(12, tags$h4("The points on the chart are NOT race times. They are a predicted time based on all the crews in that year. It follows that if there were no crews capable doing a fast
WS D time in that year there would be no fast crew racing DW that year. The reality is that to take advantage of the conditions a fast crew must be racing.")))),
tabPanel("WS & DW Comparison",
fluidRow(column(10, tags$h2("DW and Waterside Results Database")),column(2, tags$img(src="DW Logo.jpg", height = "80px", align = "left"))),
fluidRow(sidebarLayout(sidebarPanel(
fluidRow(
column(6,selectInput("comattDWyear","Pick Year",c(unique(commenus$Year)),selected = "2019",multiple = FALSE)),
column(12, tags$h4("Please Note that these plots require data for all races in the selected year or an error message will be generated"))
),
fluidRow(column(12, DT::dataTableOutput("Etable"))),
fluidRow(column(12, tags$h4("The plots compare times for Waterside A,B,C and D against DW with D also shown for the 4 day classes.
The regression line has been plotted with the intercept to zero.")))
),
mainPanel(
fluidRow(column(12, plotOutput("CompGraphs"))),
fluidRow(column(12, tags$h4("The plots compare times for Waterside A,B,C and D against DW with D also shown for the 4 day classes.
The regression line has been plotted with the intercept to zero.")))
)
)))
),
navbarMenu("Information",
tabPanel("Portaging Distances",fluidRow(column(12, tags$iframe(style="height:1000px; width:100%", src="PortagingDistance.pdf")))),
tabPanel("Time Sheet Senior",fluidRow(column(12, tags$iframe(style="height:1000px; width:100%", src="TimeSheet2.pdf"))))
),
navbarMenu("History",
tabPanel("Key Dates",fluidRow(column(12, tags$iframe(style="height:1000px; width:100%", src="Key Dates.pdf")))),
tabPanel("Trophy Dates",fluidRow(column(12, tags$iframe(style="height:1000px; width:100%", src="Trophies - Year of Introduction.pdf")))),
tabPanel("The Early History by David Keane",fluidRow(column(12, tags$iframe(style="height:1000px; width:100%", src="DW David Keane.pdf")))),
tabPanel("History to 2019",fluidRow(column(12, tags$iframe(style="height:1000px; width:100%", src="History to 2019.pdf")))),
tabPanel("Original Portage Map",fluidRow(column(12, tags$iframe(style="height:1000px; width:100%", src="Original Portage Map.pdf")))),
tabPanel("Photos",
fluidRow(column(4, tags$h3("Photographs of some past competitors"))),
fluidRow(column(4, tags$h4(" "))),
fluidRow(
column(4, tags$img(src="1962 Ted Tandy & Gillie Howe at Devizes.jpg", width = "100%")),
column(4, tags$img(src="1962 Ted Tandy & Gillie Howe.jpg", width = "100%")),
column(4, tags$img(src="1965 Record Cook and Stimson.jpg", width = "100%"))
),
fluidRow(column(4, tags$h4("1962 Ted Tandy & Gillie Howe leaving Devizes")),column(4, tags$h4("1962 Ted Tandy & Gillie Howe")),column(4, tags$h4("1965 Cook and Stimson"))),
fluidRow(column(12, tags$h4("Gillie (GR) Howe completed the event 10 times with an average 2nd place including a folding boat.
He was the first member of the 1000 mile club. As can be seen in these early pictures no bouyancy aids (life jackets) are being worn and in latter
years many of those which were used were not inflated"))),
fluidRow(column(4, tags$h3(" "))),
fluidRow(
column(4, tags$img(src="1965 The first Glass Boat - Accord.jpg", width = "100%")),
column(4, tags$img(src="1966 approximate - From the Boat Number D N Aterton & J Babden.jpg", width = "100%")),
column(4, tags$img(src="1969 Paganelli and Evans leaving Devizes.jpg", width = "100%"))
),
fluidRow(column(4, tags$h4("1965 The first Glass Boat - Accord")),column(4, tags$h4("1966 approximate - From the Boat Number D N Aterton & J Babden")),column(4, tags$h4("1969 Paganelli and Evans leaving Devizes"))),
fluidRow(column(4, tags$h3(" "))),
fluidRow(
column(4, tags$img(src="1970 Croften and The long Run.jpg", width = "100%")),
column(4, tags$img(src="1970 Pape and Serensen.jpg", width = "100%")),
column(4, tags$img(src="1978 Brian Greenham & Tim Cornish.jpg", width = "100%"))),
fluidRow(column(4, tags$h4("1970 Croften and The long Run")),column(4, tags$h4("1970 Pape and Serensen one of the first International Competitors")),column(4, tags$h4("1978 Brian Greenham & Tim Cornish"))),
fluidRow(column(12, tags$h4("The shot of the Long Run is a reference to the Crofton flight of locks which as can been seen were dry until the canal was restored.
This required competitors to portage 1850 meters which the faster crews would run. Some crews continue to run this section although it can be paddled in a similar time."))
),
fluidRow(column(4, tags$h3(" "))),
fluidRow(
column(4, tags$img(src="1979 Brain Greenham and Tim Cornish Portage.jpg", width = "100%")),
column(4, tags$img(src="1979 Brain Greenham and Tim Cornish.jpg", width = "100%")),
column(4, tags$img(src="1984 Cornish & Viljoen at Westminster.jpg", width = "100%"))
),
fluidRow(column(4, tags$h4("1979 Brain Greenham and Tim Cornish Portage")),column(4, tags$h4("1979 Brain Greenham and Tim Cornish")),column(4, tags$h4("1984 Cornish & Viljoen at Westminster"))),
fluidRow(column(12, tags$h4("Brain Greenham and Tim Cornish hold the record for the DW wich was set in 1979 in a time of 15:34.
This time was beaten in 2000 by Steve Baker and Duncan Capps with a time of 15:17, however as the race was abandomed in 2000 this time was not recognised by DW and is therefore unofficial"))),
fluidRow(column(4, tags$h3(" "))),
fluidRow(
column(5, tags$img(src="1984 Cornish & Viljoen.jpg", width = "100%")),
column(4, tags$img(src="1989 Paul & Micheal Wells.jpg", width = "100%")),
column(3, tags$img(src="1975 First Ladies Crew.jpg", width = "100%"))
),
fluidRow(column(4, tags$h4("1984 Cornish & Viljoen")),column(4, tags$h4("1989 Paul & Micheal Wells")),column(4, tags$h4("1975 First Ladies Crew - Maurene Hassack & Jo Saxby"))),
fluidRow(column(12, tags$h4("The ladies were not allowed to enter formally but as was the custom at that time, they were allowed the facilities of the race and given a completion certificate.
The following year Maurene paddled with her neighbour Diana Johnson in the new Senior Ladies sub class."))),
fluidRow(column(4, tags$h3(" "))),
fluidRow(