datafest competition 2019
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

181 lines
4.3 KiB

  1. source("readData.R")
  2. library(tidyverse)
  3. RPEData <-readNArpeData()
  4. numDays <- max(RPEData$TimeSinceAugFirst)
  5. dayList <- 0:numDays
  6. workLoad <- c()
  7. averageWorkLoad <- c()
  8. for(day in dayList)
  9. {
  10. daylyActivities <- subset(RPEData, TimeSinceAugFirst == day)
  11. cat("day: ", day, "\n",sep="")
  12. cat("Activity count:", length(daylyActivities$DailyLoad), "\n", sep="")
  13. averageWorkLoad <- c(averageWorkLoad, mean(daylyActivities$SessionLoad, na.rm = T))
  14. workLoad <- c(workLoad, sum(daylyActivities$SessionLoad, na.rm = T))
  15. }
  16. plot(dayList, averageWorkLoad, main="Average Work Load")
  17. plot(dayList, workLoad, main="Daily Total Work Load")
  18. fatigueFunction <- function(workLoad, index)
  19. {
  20. if(index == 1)
  21. {
  22. return(workLoad[1])
  23. }
  24. else
  25. {
  26. return(workLoad[index] + (exp(1)^(-1/15))*fatigueFunction(workLoad, index -1))
  27. }
  28. }
  29. smoothedWork <- c()
  30. for(day in dayList)
  31. {
  32. smoothedWork <- c(smoothedWork, fatigueFunction(workLoad, day + 1))
  33. }
  34. plot(dayList, smoothedFatigue)
  35. fatigueData <- readFatigueSums()
  36. dayNum <- max(fatigueData$TimeSinceAugFirst)
  37. dayList <- 0:dayNum
  38. slidingAverage <- c()
  39. window <- 21 - 1
  40. for(day in window:dayNum)
  41. {
  42. windowAverage <- mean(fatigueData$fatigueSum[c((day-window):day)], na.rm = T)
  43. slidingAverage <- c(slidingAverage, windowAverage)
  44. }
  45. smoothedFatigueData <- c()
  46. for(day in dayList)
  47. {
  48. smoothedFatigueData <- c(smoothedFatigueData, fatigueFunction(fatigueData$fatigueSum, day + 1))
  49. }
  50. plot(dayList, smoothedFatigueData)
  51. workTibble <- tibble(day = dayList, totalWork = workLoad,
  52. averageWorkLoad = averageWorkLoad,
  53. smoothedWork = smoothedWork,
  54. smoothedFatigueData = smoothedFatigueData)
  55. workGraph <- ggplot(data = workTibble) +
  56. theme(plot.title = element_text(hjust = 0.5)) +
  57. ggtitle("Team's Smoothed Work") +
  58. geom_point(mapping = aes(x=day, y=smoothedWork)) +
  59. labs(x = "Days Since August First 2017", y = "Teams Training Work")+
  60. theme_bw()
  61. fatGraph <- ggplot(data = workTibble) +
  62. theme(plot.title = element_text(hjust = 0.5)) +
  63. ggtitle("Team's Percieved Fatigue") +
  64. geom_point(mapping = aes(x=day, y=smoothedFatigueData)) +
  65. labs(x = "Days Since August First 2017", y = "Teams Average Normalized Fatigue")+
  66. theme_bw()
  67. for(gameDay in games$Date)
  68. {
  69. fatGraph <- fatGraph + geom_vline(xintercept = gameDay, linetype="dotted",
  70. color = "blue", size=1.0)
  71. workGraph <- workGraph + geom_vline(xintercept = gameDay, linetype="dotted",
  72. color = "blue", size=1.0)
  73. }
  74. workGraph
  75. fatGraph
  76. write.csv(dataTibble, "cleaned/expSmoothWorkAndFatigueData.csv")
  77. slidingAverage <- c()
  78. window <- 31 - 1
  79. for(day in window:numDays)
  80. {
  81. windowAverage <- mean(workLoad[c((day-window):day)])
  82. slidingAverage <- c(slidingAverage, windowAverage)
  83. }
  84. plot(window:numDays, slidingAverage, main="Sliding Average")
  85. plot(density(slidingAverage), main="Sliding Average Density")
  86. plot(density(workLoad), main="Total Work Load Average")
  87. dataTibble <- tibble(TimeSinceAugFirst = window:numDays, slidingWorkAverage = slidingAverage)
  88. workGraph <- ggplot(data = dataTibble) +
  89. theme(plot.title = element_text(hjust = 0.5)) +
  90. ggtitle("Team's 7 Day Moving Average") +
  91. geom_point(mapping = aes(x=TimeSinceAugFirst, y=slidingWorkAverage)) +
  92. labs(x = "Days Since August Seventh 2017", y = "Teams Total Daily Load")+
  93. theme_bw()
  94. for(gameDay in games$Date)
  95. {
  96. workGraph <- workGraph + geom_vline(xintercept = gameDay, linetype="dotted",
  97. color = "blue", size=1.0)
  98. }
  99. workGraph
  100. write.csv(dataTibble, "cleaned/slidingWorkAverageSevenDay.csv")
  101. ################################ Wellness Data ###################################
  102. graphingTib <- tibble(slidingAverage = slidingAverage, days = window:dayNum)
  103. fGraph <- ggplot(data = graphingTib) +
  104. theme(plot.title = element_text(hjust = 0.5)) +
  105. ggtitle("Team's Average Normalized Fatigue") +
  106. geom_point(mapping = aes(x=days, y=slidingAverage)) +
  107. labs(x = "Days Since August Twenty First 2017", y = "Teams Average Normalized Fatigue")+
  108. theme_bw()
  109. for(gameDay in games$Date)
  110. {
  111. fGraph <- fGraph + geom_vline(xintercept = gameDay, linetype="dotted",
  112. color = "blue", size=1.0)
  113. }
  114. fGraph
  115. plot(density(slidingAverage))
  116. plot(window:dayNum, slidingAverage)