R:将阵列转换为只有一行的矩阵

pat*_*t-s 2 arrays r matrix type-conversion

给定foomock,有没有一种方法可以代替foo类?matrixarray

调用as.matrix()放入foo错误的结构。我希望foo成为一个matrix,而不是两行。

foo = structure(c(0.729504668890744, 0.190464932275543, 0.0800303988337127), 
              .Dim = c(1L, 3L, 1L), 
              .Dimnames = list(NULL, c("A", "B", 
                                       "C"), "NA"))
class(foo[, , 1L])
#> [1] "numeric"
print(foo[, , 1L])
#>         A         B         C 
#> 0.7295047 0.1904649 0.0800304


mock = structure(c(0.550876469322338, 0.729504668890744, 0.342833178276825, 
                 0.190464932275543, 0.106290352400837, 0.0800303988337127), 
               .Dim = c(2L, 
                        3L, 1L), 
               .Dimnames = list(NULL, c("A", "B", "C"), 
                                "NA"))

class(mock[, , 1L])
#> [1] "matrix"
print(mock[, , 1L])
#>              A         B         C
#> [1,] 0.5508765 0.3428332 0.1062904
#> [2,] 0.7295047 0.1904649 0.0800304

# matrix conversion does not result in desired structure

as.matrix(foo[, , 1L])
#>        [,1]
#> A 0.7295047
#> B 0.1904649
#> C 0.0800304
Run Code Online (Sandbox Code Playgroud)

reprex软件包(v0.3.0)创建于2019-11-04

M--*_*M-- 5

您可以使用矩阵转置base::t()

t(foo[,,1L])
#>              A         B         C
#> [1,] 0.7295047 0.1904649 0.0800304

class(t(foo[,,1L]))
#> [1] "matrix"
Run Code Online (Sandbox Code Playgroud)