Shift origin of arrays and vectors
Shift origin of arrays and vectors.
shift(x, i=1) ashift(a, v=rep(1,length(dim(a))))
x |
Vector to be shifted |
i |
Number of places elements to be shifted, with default value of 1 meaning to put the last element first, followed by the first element, then the second, etc |
a |
Array to be shifted |
v |
Vector of numbers to be shifted in each dimension, with
default value corresponding to |
Function shift(x,n)
returns P^n(x) where P is the
permutation (n,1,2,...,n-1).
Function ashift
is the array generalization of this: the
n-th dimension is shifted by v[n]
. In other
words,
ashift(a,v)=a[shift(1:(dim(a)[1]),v[1]),...,shift(1:(dim(a)[n]),v[n])]
.
It is named by analogy with abind()
and aperm()
.
This function is here because a shifted semimagic square or hypercube is semimagic and a shifted pandiagonal square or hypercube is pandiagonal (note that a shifted magic square is not necessarily magic, and a shifted perfect hypercube is not necessarily perfect).
Robin K. S. Hankin
shift(1:10,3) m <- matrix(1:100,10,10) ashift(m,c(1,1)) ashift(m,c(0,1)) #note columns shifted by 1, rows unchanged. ashift(m,dim(m)) #m unchanged (Mnemonic).
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.