cmc*_*605 5 r matrix multiplication na
我想在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
Run Code Online (Sandbox Code Playgroud)
简单地做Matrix1%*%Matrix2并没有给出我想要的第2行第3列中的元素(它给出NA,这是有道理的,但不知道如何做我想做的事情).就我的目的而言,Matrix 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7666 次 |
| 最近记录: |