假设我有以下形式的数组:
,,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
答案 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