Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- csvFileName = "/home/majikstone/GoldenCheetah/export_2018_2019_Bike.csv";
- csvMat <- read.table(file=csvFileName,header=FALSE,sep=";",dec=",");
- message("File loading complete!");
- speed = as.numeric(csvMat$V1);
- hr = as.numeric(csvMat$V3);
- minSpd <- 5;
- maxSpd <- 50;
- filtHR = hr[speed >= minSpd & speed <= maxSpd];
- filtSpeed = speed[speed >= minSpd & speed <= maxSpd];
- speed = filtSpeed;
- hr = filtHR;
- minHR = min(hr);
- maxHR = max(hr);
- spdRange = c(minSpd : maxSpd);
- hrMeans = c(minSpd : maxSpd);
- hrSD = c(minSpd : maxSpd);
- for (i in spdRange)
- {
- lowerBound = max(i-2,minSpd);
- upperBound = min(i+2,maxSpd);
- hrMeans[i-minSpd+1] <- median(hr[speed >= lowerBound & speed < upperBound]);
- hrSD[i-minSpd+1] <- sd(hr[speed >= lowerBound & speed < upperBound]);
- }
- spdRange = spdRange[!is.na(hrMeans)];
- hrSD = hrSD[!is.na(hrMeans)];
- hrMeans = hrMeans[!is.na(hrMeans)];
- message("Data processing complete!");
- ## create a blank plot
- x11(width=8,height=8);
- plot(spdRange,hrMeans,ylim = c(100,190), xlim=c(minSpd,maxSpd),
- col=rgb(1.0,0.2,0.2), main="", xlab="", ylab="", lwd=4.0,
- xaxp=c(minSpd,maxSpd,(maxSpd-minSpd)/5),
- yaxp=c(100,190,(190-100)/10));
- lines(spdRange, hrMeans, col=rgb(1.0,0.2,0.2), lwd=4.0);
- lines(spdRange, hrMeans-hrSD, col=rgb(0.8,0.0,0.0), lwd=2.0);
- lines(spdRange, hrMeans+hrSD, col=rgb(1.0,0.5,0.5), lwd=2.0);
- abline(h=c(127,147,160,174), col=rgb(0.3,0.3,0.3), lty=1);
- abline(v=seq(minSpd,maxSpd,2.5), col="gray", lty=3);
- title(main="HR vs speed", xlab = "Speed (km/h)", ylab = "HR (BPM)");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement