选择满足其他条件的数组中的值

时间:2015-03-21 15:58:23

标签: arrays r

假设我有以下形式的数组:

,,1

    [,1] [,2] [,3]
[1,] 34   3     9
[2,] 45   5     8
.
.
,,2
    [,1] [,2] [,3]
[1,] 21   5    10
[2,] 94   2    10
.
.

首先,我想在每个矩阵的第三列中选择最高值:

apply(array[,3,],2,max)

返回每个矩阵中元素最高的向量。

现在我想在每个矩阵的第二列[,2]中选择那些在第三列[,3]中具有最大值的值。

我该怎么做?

从上面的示例中,所需的输出将是:

,,1

   3
,,2

   5,2

1 个答案:

答案 0 :(得分:1)

您可以尝试

lapply(1:dim(arr1)[3], function(i) {
         x1 <- arr1[,,i]
         x1[,2][x1[,3]==max(x1[,3])]})
#[[1]]
#[1] 3

#[[2]]
#[1] 5 2