Advertisement
Guest User

Heart rate vs. Speed

a guest
Mar 15th, 2019
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.54 KB | None | 0 0
  1. csvFileName = "/home/majikstone/GoldenCheetah/export_2018_2019_Bike.csv";
  2. csvMat <- read.table(file=csvFileName,header=FALSE,sep=";",dec=",");
  3.  
  4. message("File loading complete!");
  5.  
  6. speed = as.numeric(csvMat$V1);
  7. hr = as.numeric(csvMat$V3);
  8.  
  9. minSpd <- 5;
  10. maxSpd <- 50;
  11.  
  12. filtHR = hr[speed >= minSpd & speed <= maxSpd];
  13. filtSpeed = speed[speed >= minSpd & speed <= maxSpd];
  14.  
  15. speed = filtSpeed;
  16. hr = filtHR;
  17.  
  18.  
  19. minHR = min(hr);
  20. maxHR = max(hr);
  21.  
  22. spdRange = c(minSpd : maxSpd);
  23. hrMeans = c(minSpd : maxSpd);
  24. hrSD = c(minSpd : maxSpd);
  25.  
  26. for (i in spdRange)
  27. {
  28.     lowerBound = max(i-2,minSpd);
  29.     upperBound = min(i+2,maxSpd);
  30.     hrMeans[i-minSpd+1] <- median(hr[speed >= lowerBound & speed < upperBound]);
  31.     hrSD[i-minSpd+1] <- sd(hr[speed >= lowerBound & speed < upperBound]);
  32. }
  33.  
  34. spdRange = spdRange[!is.na(hrMeans)];
  35. hrSD = hrSD[!is.na(hrMeans)];
  36. hrMeans = hrMeans[!is.na(hrMeans)];
  37.  
  38. message("Data processing complete!");
  39.  
  40. ## create a blank plot
  41. x11(width=8,height=8);
  42. plot(spdRange,hrMeans,ylim = c(100,190), xlim=c(minSpd,maxSpd),
  43.     col=rgb(1.0,0.2,0.2), main="", xlab="", ylab="", lwd=4.0,
  44.     xaxp=c(minSpd,maxSpd,(maxSpd-minSpd)/5),
  45.     yaxp=c(100,190,(190-100)/10));
  46. lines(spdRange, hrMeans, col=rgb(1.0,0.2,0.2), lwd=4.0);
  47. lines(spdRange, hrMeans-hrSD, col=rgb(0.8,0.0,0.0), lwd=2.0);
  48. lines(spdRange, hrMeans+hrSD, col=rgb(1.0,0.5,0.5), lwd=2.0);
  49. abline(h=c(127,147,160,174), col=rgb(0.3,0.3,0.3), lty=1);
  50. abline(v=seq(minSpd,maxSpd,2.5), col="gray", lty=3);
  51. title(main="HR vs speed", xlab = "Speed (km/h)", ylab = "HR (BPM)");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement