vander <- function(x, n = length(x)) {
stopifnot(as.integer(n) == n && n > 0)
z <- matrix(rep(x, n), length(x))
for (i in 1:n) {
z[, i] <- z[, i] ^ (i - 1)
}
return(z[, n:1, drop = FALSE])
}
のように定義する。実行例は,
> vander(1:5, 1)
[,1]
[1,] 1
[2,] 1
[3,] 1
[4,] 1
[5,] 1
> vander(1:5, 2)
[,1] [,2]
[1,] 1 1
[2,] 2 1
[3,] 3 1
[4,] 4 1
[5,] 5 1
> vander(1:5)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 16 8 4 2 1
[3,] 81 27 9 3 1
[4,] 256 64 16 4 1
[5,] 625 125 25 5 1
> vander(runif(5))
[,1] [,2] [,3] [,4] [,5]
[1,] 4.578474e-02 0.0989784306 0.213973690 0.4625729 1
[2,] 8.531321e-01 0.8876917796 0.923651483 0.9610679 1
[3,] 4.391669e-02 0.0959339217 0.209563093 0.4577806 1
[4,] 3.281008e-05 0.0004335163 0.005728008 0.0756836 1
[5,] 6.778974e-01 0.7470900815 0.823345243 0.9073837 1