How do you find a cutting point / strong slope within one-dimensional data I have one-dimensional data. I want to find possible natural cutting points (strong slopes) within the data.
For instance, if the data is
1, 2, 3, 2, 2, 3, 4, 2, 80, 90, 80, 85, 91

there would be a cutting point between values (1-4) and (80-91)
I mapped a histogram which gives me an idea, but I'm curious whether a better method exists (especially for large amounts of data, 100k+). 
If the distribution of the values in the example above was a function, it would have the highest slope right before 80.
If it helps, I am using R
PS: My data are not necessarily normally distributed, nor are they ordered.
 A: There are several algorithms designed for one-dimensional clustering. Among most widely known are Jenks natural breaks, method designed Fisher (1958) and K-means algorithm. Basically, all the three algorithms are very similar since they aim at minimizing within-cluster sum of squares.
All the (and other) methods are implemented in classInt library for R. Using Fisher method or K-means seems to work well given the limited data sample you provided (see below). Since the algorithms are quite simple, it should not be a problem to run them on larger amounts of data.
library(classInt)

x <- c(1, 2, 3, 2, 2, 3, 4, 2, 80, 90, 80, 85, 91)

classIntervals(x, style = "fisher", n = 2)
## style: fisher
##   one of 7 possible partitions of this variable into 2 classes
##  [1,42) [42,91] 
##       8       5 
classIntervals(x, style = "kmeans", n = 2)
## style: kmeans
##   one of 7 possible partitions of this variable into 2 classes
##  [1,42) [42,91] 
##       8       5 

The problematic part of the methods is that, like with any of the clustering approaches, they do not provide you any fool-proof method on deciding about the number of clusters to look for. There are rules of thumb and algorithms (e.g. here, here, or here) that in some cases make the choice simpler, but they are far from perfect and the final choice is always somehow subjective. In many cases the choice is simpler with model-based clustering, where there are available methods for model comparison, however those methods output clustering solutions with fuzzy, rather than "cutting point", boundaries (you could check mixtools package for examples).

Fisher, W. D. (1958). On grouping for maximum homogeneity. Journal of the American Statistical Association, 53, 789–798.
A: You can maybe use something from change point detection on time-series data. This could get you started if you are using R.
