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

给出foomock,是否有一种方法可以将foo作为类matrix而不是array

调用as.matrix()会将foo置于错误的结构中。 我希望foomatrix,只是一行而不是两行。

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.106290352400837,.Dim = c(2L,"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

reprex package(v0.3.0)于2019-11-04创建

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

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

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

class(t(foo[,1L]))
#> [1] "matrix"
,

这里是array

的一个选项
array(c(foo),dim(foo)[-3],dimnames = dimnames(foo)[1:2])
本文链接:https://www.f2er.com/3163340.html

大家都在问