This is a learning practice how to use R markdown and cut method in R

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.2.5
library(tidyr)
## Warning: package 'tidyr' was built under R version 3.2.5
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.2.5
## 
## 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(moments)
## Warning: package 'moments' was built under R version 3.2.5
head(cars)
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16
## 6     9   10

Using cut method to breakdown the speed variable into different range

cars$new_speed<-cut(cars$speed,breaks=quantile(cars$speed),include.lowest = T)

head(cars)
##   speed dist new_speed
## 1     4    2    [4,12]
## 2     4   10    [4,12]
## 3     7    4    [4,12]
## 4     7   22    [4,12]
## 5     8   16    [4,12]
## 6     9   10    [4,12]

Plot

ggplot(data=cars,aes(x=new_speed,y=dist)) + geom_boxplot(aes(fill=new_speed)) + ylab("Distance") + xlab("Speed Range") + ggtitle("Boxplot")  + theme_bw()+ theme(plot.title = element_text(hjust=0.5))