gpt4 book ai didi

r - 分散NA值的矩阵乘法

转载 作者:行者123 更新时间:2023-12-04 11:32:39 26 4
gpt4 key购买 nike

我正在将R中的两个矩阵相乘,其中一个矩阵可能包含随机放置的NA值(即没有理由将它们全部放在行或列中),但是我仍然想要类似下面的示例的输出:

Matrix 1
[1,] 33 45 50
[2,] NA NA 54

Matrix 2
[1,] A1 0.0000000 0.0000000
[2,] 0.0000000 A2 0.0000000
[3,] 0.0000000 0.0000000 A3


Result
[1,] 33*A1 45*A2 50*A3
[2,] NA NA (NA*0 +NA*0 +54*A3)=54*A3

简单地执行Matrix1%*%Matrix2并不能满足我想要的行2,列3的要求(它给出了NA,这很有意义,但不确定如何做我想做的事情)。就我的目的而言,矩阵2永远不会有NA值,如果那改变了任何事情的话。

最佳答案

将所有出现的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 - 分散NA值的矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16535084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com