如果我有n个矩阵的选择,我想要最低的非零数,否则返回零。我想使用一个可以应用于矩阵对象的构造,而不是遍历每个元素,因为我将使用的矩阵的大小。一个例子......
> A
[,1] [,2]
[1,] 0 1
[2,] 0 0
> B
[,1] [,2]
[1,] 2 2
[2,] 3 0
> C
[,1] [,2]
[1,] 1 3
[2,] 2 0
我希望它能够回归......
> FinalMatrix
[,1] [,2]
[1,] 1 1
[2,] 2 0
如果有人有任何建议,请提前致谢!
答案 0 :(得分:1)
这似乎有效:
A <- matrix(c(0, 0, 1, 0), 2, 2)
B <- matrix(c(2, 3, 2, 0), 2, 2)
C <- matrix(c(1, 2, 3, 0), 2, 2)
dat <- list(A, B, C)
out <- do.call(pmin, lapply(dat, function(x) ifelse(x == 0, Inf, x)))
out <- ifelse(is.infinite(out), 0, out)