R在多个矩阵中最低非零

时间:2013-07-06 23:53:00

标签: r matrix

如果我有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

如果有人有任何建议,请提前致谢!

1 个答案:

答案 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)