Statistical Computing with R, Maria L. Rizzo, Chapter 9, Problem 3

N <- 5000
x <- numeric(N)
x[1] <- rnorm(1)
k <- 0
u <- runif(N)
for (i in 2:N){
  y <- rnorm(1, mean = x[i-1])
  if (u[i] <= (dcauchy(y)*dnorm((x[i-1]), mean = y))/dcauchy(x[i-1])*dnorm(y, mean = x[i-1]))
    x[i] <- y else {
      x[i] <- x[i-1]
      k <- k + 1
      }
  }
  
x <- x[1001:N]
plot(x,type = "l")

observed <- quantile(x, seq(0, 1, 0.1))
expected <- qcauchy(seq(0, 1, 0.1))
c<-cbind(observed, expected)
c
##        observed   expected
## 0%   -2.3063389       -Inf
## 10%  -0.7200077 -3.0776835
## 20%  -0.4677933 -1.3763819
## 30%  -0.1924404 -0.7265425
## 40%  -0.0352437 -0.3249197
## 50%   0.1730855  0.0000000
## 60%   0.3233978  0.3249197
## 70%   0.5305910  0.7265425
## 80%   0.7675695  1.3763819
## 90%   1.3952413  3.0776835
## 100%  4.1123138        Inf