Here is proof that 2015 novak djokovic is the goat:

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

atp <- read.csv("https://raw.githubusercontent.com/JeffSackmann/tennis_atp/master/atp_matches_2015.csv")

library(dplyr)
library(ggplot2)

atp_big3 <- atp[atp$winner_name %in% c("Novak Djokovic", "Roger Federer", "Rafael Nadal"), ]

##tracking ranking points over the year in big 3 
ggplot(atp_big3, aes(y=winner_rank_points, x=tourney_date, colour=winner_name)) + geom_point() + geom_smooth(method=lm)
## `geom_smooth()` using formula 'y ~ x'

print("As you can see both Nadal and Federer lose points while djokovic gains them over the year - this is because he is the best")
## [1] "As you can see both Nadal and Federer lose points while djokovic gains them over the year - this is because he is the best"
#Now looking at the top 10% of ranking pointd
tenpercent <- atp$winner_rank_points 
quantile(tenpercent, .9, na.rm = TRUE)
##    90% 
## 5242.5
ggplot(atp %>% filter(winner_rank_points >5242.5 ), aes(y= winner_rank_points  , x=tourney_date, colour=winner_name)) + geom_point() + geom_smooth(method=lm)
## `geom_smooth()` using formula 'y ~ x'

print("While Andy Murray is trending up and finishes the year in second you can see there is a big big gap between Djokovic and everyone else - proving he is therefore the GOAT")
## [1] "While Andy Murray is trending up and finishes the year in second you can see there is a big big gap between Djokovic and everyone else - proving he is therefore the GOAT"