【发布时间】:2017-01-20 08:49:30
【问题描述】:
给定两个列数相同的矩阵。
m1 <- matrix(1:12, ncol=3)
m2 <- matrix(10:2, ncol=3)
假设我有一个函数,它接受两个向量并执行类似于每个向量 min 的乘积(玩具示例):
fun <- function(v1, v2)(min(v1)*min(v2))
我无法理解如何通过使用两个嵌套的应用调用对所有列组合执行该函数。 在 m1 与第一列上使用 apply 就像:
apply(m1, 2, fun, m2[,1])
我坚持循环遍历所有 m2 的列,例如:
m3<-matrix(NA, ncol=3, nrow=3)
for(c in 1:ncol(m2)){
m3[,c] <- apply(m1, 2, fun, m2[,c])
}
这给了
> m3
[,1] [,2] [,3]
[1,] 10 9 8
[2,] 50 45 40
[3,] 90 81 72
那么如何将此循环框定为应用?
编辑:代码有错误 - 抱歉。见编辑
【问题讨论】: