精子功能不清楚

Lov*_*eow 8 r function

所以我试图找出这个功能的aperm()作用.当我这样做aperm(a),a矩阵在哪里,我得到它的转置; 我明白了.但是这个功能怎么样:

aperm(a,c(3,1:2))
Run Code Online (Sandbox Code Playgroud)

这是做什么的?when a是6*7矩阵时,此命令不起作用.

我也不理解R的例子.

Gre*_*now 7

您收到错误是因为您要告知aperm置换3维数组,但只提供2维数组(矩阵).您需要一个三维数组才能使命令工作:

请考虑以下示例:

myarray <- array( 1:24, dim=c(2,3,4),
 dimnames=list(One=c('a','b'), Two=c('A','B','C'), Three=1:4) )

myarray
aperm(myarray, c(3,1,2))
Run Code Online (Sandbox Code Playgroud)

这会创建一个带有dimnames的三维数组,以帮助使其更清晰,然后置换它.注意值的新顺序.

这个例子也是:

> myarray[2,3,4]
[1] 24
> 
> mynewarray <- aperm(myarray, c(3,1,2) )
> mynewarray[4,2,3]
[1] 24
> 
Run Code Online (Sandbox Code Playgroud)

要在原始数组中获取值为24的元素,我们将获取第4层第3列的第2行(或者您想要称为第3维的任何内容).

但是在置换数组中,它现在是第3层(以前是列)的第2列(以前是行)的第4行(以前是行).