`rray_transpose()`

transposes `x`

along axes defined by `permutation`

. By
default, a standard transpose is performed, which is equivalent to
permuting along the reversed dimensions of `x`

.

rray_transpose(x, permutation = NULL) # S3 method for vctrs_rray t(x)

x | A vector, matrix, array, or rray. |
---|---|

permutation | This should be some permutation of |

`x`

transposed along the axes defined by the `permutation`

.

Unlike `t()`

, using `rray_transpose()`

on a vector does not transpose it,
as it is a 1D object, and the consistent result of transposing a
1D object is itself.

`t.vctrs_rray()`

uses the base R's `t()`

behavior to be consistent with
user expectations about transposing 1D objects.

There is an `aperm()`

method for `rray`

objects as well. Unlike base R,
it currently does not accept character strings for `perm`

.

x <- rray( 1:6, c(3, 2), dim_names = list(rows = c("r1", "r2", "r3"), cols = c("c1", "c2")) ) # A standard transpose rray_transpose(x)#> <rray<int>[,3][2]> #> rows #> cols r1 r2 r3 #> c1 1 2 3 #> c2 4 5 6#> <rray<int>[,3][2]> #> rows #> cols r1 r2 r3 #> c1 1 2 3 #> c2 4 5 6x_3d <- rray_broadcast(x, c(3, 2, 2)) # transpose here is like setting # `permutation = c(3, 2, 1)` # so the result should change _shape_ like: # (3, 2, 2) -> (2, 2, 3) rray_transpose(x_3d)#> <rray<int>[,2,3][2]> #> , , rows = r1 #> #> cols #> c1 c2 #> [1,] 1 4 #> [2,] 1 4 #> #> , , rows = r2 #> #> cols #> c1 c2 #> [1,] 2 5 #> [2,] 2 5 #> #> , , rows = r3 #> #> cols #> c1 c2 #> [1,] 3 6 #> [2,] 3 6 #># This transposes the "inner" matrices # (flips the first and second dimension) # and leaves the 3rd dimension alone rray_transpose(x_3d, c(2, 1, 3))#> <rray<int>[,3,2][2]> #> , , 1 #> #> rows #> cols r1 r2 r3 #> c1 1 2 3 #> c2 4 5 6 #> #> , , 2 #> #> rows #> cols r1 r2 r3 #> c1 1 2 3 #> c2 4 5 6 #># --------------------------------------------------------------------------- # Difference from base R # Coerces 1:5 into a 2D matrix, then transposes t(1:5)#> [,1] [,2] [,3] [,4] [,5] #> [1,] 1 2 3 4 5# Leaves it as a 1D array and does nothing rray_transpose(1:5)#> [1] 1 2 3 4 5#> <rray<int>[,5][1]> #> [,1] [,2] [,3] [,4] [,5] #> [1,] 1 2 3 4 5