R 比较两个矩阵(A和B)并输出一个新矩阵C,其中cij=min(aij,bij)

R 比较两个矩阵(A和B)并输出一个新矩阵C,其中cij=min(aij,bij),r,R,标题相当清楚,但我尝试获取两个矩阵A和B,并输出一个矩阵C,其中包含两个矩阵中的最小元素 cij=最小值(aij,bij) 我就是这样考虑的: C <- matrix(ncol = ncol(A), nrow = nrow(A), 0) for (i in 1:ncol(C)) { Y <- rbind(A[i,], B[i,]) C[i,] <- apply(Y, 2, min) } C参见?pmin(最小并行): R>A [,1] [,2] [1,]

标题相当清楚,但我尝试获取两个矩阵A和B,并输出一个矩阵C,其中包含两个矩阵中的最小元素

cij=最小值(aij,bij)

我就是这样考虑的:

C <- matrix(ncol = ncol(A), nrow = nrow(A), 0)
for (i in 1:ncol(C)) {
    Y <- rbind(A[i,], B[i,])
    C[i,] <- apply(Y, 2, min)
}
C参见
?pmin
(最小并行):

R>A
[,1] [,2]
[1,]    1    3
[2,]    2    4
R> B
[,1] [,2]
[1,]    5    1
[2,]    1    6
R> pmin(A,B)
[,1] [,2]
[1,]    1    1
[2,]    1    4
试试看

cb]B]
这不是那么简单,但会奏效。演示:

> A <- matrix(1:4, 2, 2)
> B <- matrix(c(5, 1, 1, 6), 2, 2)
> C <- A
> C[A>B] <- B[A>B]
> 
> A
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> B
     [,1] [,2]
[1,]    5    1
[2,]    1    6
> C
     [,1] [,2]
[1,]    1    1
[2,]    1    4
>abc[A>B]B]
> 
>A
[,1] [,2]
[1,]    1    3
[2,]    2    4
>B
[,1] [,2]
[1,]    5    1
[2,]    1    6
>C
[,1] [,2]
[1,]    1    1
[2,]    1    4

@rcs但这里假设mtarix具有相同的长度。两个矩阵必须具有相同的维度,因为OP编写了
cij=min(aij,bij)
这正是我需要的。谢谢
C <- A
C[A>B] <- B[A>B]
> A <- matrix(1:4, 2, 2)
> B <- matrix(c(5, 1, 1, 6), 2, 2)
> C <- A
> C[A>B] <- B[A>B]
> 
> A
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> B
     [,1] [,2]
[1,]    5    1
[2,]    1    6
> C
     [,1] [,2]
[1,]    1    1
[2,]    1    4