# A copy of MASS:::.rat
# could not use it directly because .rat is not exported from MASS
.rat <- function(x, cycles = 10, max.denominator = 2000)
{
a0 <- rep(0, length(x))
A <- matrix(b0 <- rep(1, length(x)))
fin <- is.finite(x)
B <- matrix(floor(x))
r <- as.vector(x) - drop(B)
len <- 0
while (any(which <- fin & (r > 1/max.denominator)) && (len <- len + 1) <= cycles)
{
a <- a0
b <- b0
a[which] <- 1
r[which] <- 1/r[which]
b[which] <- floor(r[which])
r[which] <- r[which] - b[which]
A <- cbind(A, a)
B <- cbind(B, b)
}
pq1 <- cbind(b0, a0)
pq <- cbind(B[, 1], b0)
len <- 1
while ((len <- len + 1) <= ncol(B))
{
pq0 <- pq1
pq1 <- pq
pq <- B[, len] * pq1 + A[, len] * pq0
}
pq[!fin, 1] <- x[!fin]
list(rat = pq, x = x)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.