精子功能不清楚

时间:2014-07-31 16:57:47

标签: r function

所以我试图找出这个函数aperm()的作用。当我aperm(a)时,a是一个矩阵,我得到它的转置;我明白了。但是这个功能怎么样:

aperm(a,c(3,1:2))
这是做什么的?当a是6 * 7矩阵时,此命令不起作用。

我也不理解R的例子。

1 个答案:

答案 0 :(得分:5)

您收到错误是因为您告诉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))

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

也是这个例子:

> myarray[2,3,4]
[1] 24
> 
> mynewarray <- aperm(myarray, c(3,1,2) )
> mynewarray[4,2,3]
[1] 24
> 

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

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