traçar um círculo / casco convexo em torno de uma determinada porcentagem de pontos

eu tenho

x=rnorm(100)
y=rnorm(100)
plot(x,y)
abline(h=0); abline(v=0)

Do ponto(0,0) e indo para o exterior, gostaria de desenhar um casco convexo contorno / círculo / elipse / mão livre que inclua qualquer porcentagem de pontos.

Existe alguma função ou pacote que possa automatizar isso? Eu tentei o seguinte até agora, mas só consigo obter um círculo com alguma extrapolação e aproximação.

Eu tentei isso até agora:

#calculate radius
r<- sqrt(x^2+y^2)

df<-data.frame(radius=seq(0,3,0.1), percentage=NA)

#get the percentage of points that have a smaller radius than i
k<-1
for (i in seq(0,3,0.1)){
  df$percentage[k] <- sum(r<i)/length(r)
  k<-k+1
}

#extrapolation function
prox.function<- approxfun(df$percentage, df$radius)


#get the radius of the circle that encloses about 50% of
prox.function(.50)

#draw the circle
library(plotrix)
draw.circle(0,0,prox.function(.50))

questionAnswers(2)

yourAnswerToTheQuestion