查找其矩阵行具有最高列总和

问题描述:

如果我有多个矩阵状查找其矩阵行具有最高列总和

mymat <- matrix(c(1,2,3,8,6,1,1,3,1) , nrow=3, ncol=3) 
matrix_list <- replicate(2, mymat) 
column_sums <- colSums(matrix_list) 

这让我发现,连续两个具有最高的总和,但我将如何创建一个告诉我,行中的两个有一个代码两个矩阵中的最高总和?所以它会给我看一个2,2的矢量。我试过这个

for(i in 1:2) { 
S <- max(matrix_list[i, ]) 
} 

但是这不是做这项工作。任何帮助,将不胜感激。

+1

'申请(column_sums,2,which.max)'? – Sotos

+3

请注意,您没有'matrix_list'中的矩阵列表,您有一个3x3x2阵列。也许你打算在'replicate()'中使用'simplify = FALSE'。 –

+0

这工作得很好,如果你喜欢,你可以让你的评论另一个答案。 – Killian

apply(column_sums, 2, which.max) 
#[1] 2 2 

我们可以用max.col

max.col(t(column_sums), "first") 
#[1] 2 2 
+0

这很好。 't(column_sums)'的意义是什么? – Killian

+0

@Killian'max.col'返回每行最大值的索引。所以,通过转置它,我们得到了该索引。你可以检查'column_sums'这是一个2列矩阵的输出。如果我们不使用转置使用它,它会为矩阵的每一行返回3个值。 – akrun