如何在矩阵上执行复杂的循环操作

时间:2015-07-01 20:16:41

标签: r loops matrix determinants

我有一个类似

的样本矩阵
df = df[df['Date'] > time.strptime(curve_enddate[i][0], '%Y-%b-%d')]

我希望输出像

 5 4 3  
 2 6 8   
 1 9 7   

等等......

计算后得到的最大值应采用矩阵形式。我需要概括它,因此我需要一个通用代码。

1 个答案:

答案 0 :(得分:2)

这可以完成工作,但这是一个非常缺乏想象力的解决方案,因为它只是遍历执行所请求计算的行和列,而不是做任何矢量化。

sapply(1:ncol(m), function(j) sapply(1:nrow(m), function(i) max(m[i,j]*m[-i,-j])))
#      [,1] [,2] [,3]
# [1,]   45   32   27
# [2,]   18   42   72
# [3,]    8   72   42

数据:

(m <- matrix(c(5, 2, 1, 4, 6, 9, 3, 8, 7), nrow=3))
#      [,1] [,2] [,3]
# [1,]    5    4    3
# [2,]    2    6    8
# [3,]    1    9    7