I'm looking for the exact value of epsilon to run the `DBSCAN` clustering algorithm. 

Here's the `KNN` distance plot. 

![KNN distplot](https://i.stack.imgur.com/UbEcY.jpg)

This chart has two flex points. I need the second flex point. I'm using the following code:

```
# evaluate kNN distance
dist <- dbscan::kNNdist(iris, 4)

# order result
dist <- dist[order(dist)]

# scale
dist <- dist / max(dist)

# derivative
ddist <- diff(dist) / ( 1 / length(dist))

# get first point where derivative is higher than 1
knee <- dist[length(ddist)- length(ddist[ddist > 1])]

```

How can improve my code to get second point where derivative is higher than 1?