Momocs uses colnamed matrices to store (typically) Fourier coefficients
in Coe objects (typically OutCoe). They are arranged as rank-wise:
A1, A2, ..., An, B1, ..., Bn, C1, ..., Cn, D1, ..., Dn
. From other softwares they may arrive
as A1, B1, C1, D1, ..., An, Bn, Cn, Dn
, this functions helps to go
from one to the other format. In short, this function rearranges column order. See examples.
Usage
coeff_rearrange(x, by = c("name", "rank")[1])
Examples
m_name <- m_rank <- matrix(1:32, 2, 16)
# this one is ordered by name
colnames(m_name) <- paste0(rep(letters[1:4], each=4), 1:4)
# this one is ordered by rank
colnames(m_rank) <- paste0(letters[1:4], rep(1:4, each=4))
m_rank
#> a1 b1 c1 d1 a2 b2 c2 d2 a3 b3 c3 d3 a4 b4 c4 d4
#> [1,] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
#> [2,] 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32
m_rank %>% coeff_rearrange(by="name")
#> Warning: `arrange_()` was deprecated in dplyr 0.7.0.
#> ℹ Please use `arrange()` instead.
#> ℹ See vignette('programming') for more help
#> ℹ The deprecated feature was likely used in the Momocs package.
#> Please report the issue at <https://github.com/MomX/Momocs/issues>.
#> a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4
#> [1,] 1 9 17 25 3 11 19 27 5 13 21 29 7 15 23 31
#> [2,] 2 10 18 26 4 12 20 28 6 14 22 30 8 16 24 32
m_rank %>% coeff_rearrange(by="rank") #no change
#> a1 b1 c1 d1 a2 b2 c2 d2 a3 b3 c3 d3 a4 b4 c4 d4
#> [1,] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
#> [2,] 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32
m_name
#> a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4
#> [1,] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
#> [2,] 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32
m_name %>% coeff_rearrange(by="name") # no change
#> a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4
#> [1,] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
#> [2,] 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32
m_name %>% coeff_rearrange(by="rank")
#> a1 b1 c1 d1 a2 b2 c2 d2 a3 b3 c3 d3 a4 b4 c4 d4
#> [1,] 1 9 17 25 3 11 19 27 5 13 21 29 7 15 23 31
#> [2,] 2 10 18 26 4 12 20 28 6 14 22 30 8 16 24 32