我希望将两个矩阵乘以R中的R,其中一个可能包含随机放置的Na值(即,没有理由它们会在行或列中),但是我仍然想要一个如下示例的输出:

问题描述 投票:0回答:2

改变所有出现的

NA
到0,然后进行矩阵乘法:

x <- matrix(c(33, 45, 50, NA, NA, 54), nrow=2, byrow=TRUE) y <- diag(1:3) x[is.na(x)] <- 0 x %*% y [,1] [,2] [,3] [1,] 33 90 150 [2,] 0 0 162

r matrix multiplication na
2个回答
13
投票

要扩展上一个答案及其评论:您可以将输入矩阵的NA模式应用于输出矩阵。

仅当输入和输出矩阵具有相同的维度时,此功能才能起作用。

x <- matrix(c(33, 45, 50, NA, NA, 54), nrow=2, byrow=TRUE) y <- diag(1:3) x0 <- x x0[is.na(x)] <- 0 z <- x0 %*% y z[is.na(x)] <- NA z [,1] [,2] [,3] [1,] 33 90 150 [2,] NA NA 162


我尝试创建自己的操作员跳过Na值。

4
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.