set.seed(17)
df <- data.frame(x=300 * runif(10))
min(df); max(df)
## [1] 46.51525
## [1] 290.5136
df
##            x
## 1   46.51525
## 2  290.51364
## 3  140.47893
## 4  233.04590
## 5  122.36572
## 6  161.63914
## 7   62.06630
## 8   56.13107
## 9  233.99091
## 10  58.18318
breaks <- seq(0,300, 100)
df$interval_order <- findInterval(df$x, breaks)
df$start <- breaks[df$interval]
df$end <- breaks[df$interval + 1]
#?findInterval
df$interval_data <- cut(df$x, breaks, include.lowest = T)
##############################
df
##            x interval_order start end interval_data
## 1   46.51525              1     0 100       [0,100]
## 2  290.51364              3   200 300     (200,300]
## 3  140.47893              2   100 200     (100,200]
## 4  233.04590              3   200 300     (200,300]
## 5  122.36572              2   100 200     (100,200]
## 6  161.63914              2   100 200     (100,200]
## 7   62.06630              1     0 100       [0,100]
## 8   56.13107              1     0 100       [0,100]
## 9  233.99091              3   200 300     (200,300]
## 10  58.18318              1     0 100       [0,100]