pat*_*t-s 2 arrays r matrix type-conversion
给定foo和mock,有没有一种方法可以代替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
您可以使用矩阵转置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)