En este artículo, discutiremos cómo multiplicar una array por su transposición ignorando los valores faltantes en el lenguaje de programación R. Se puede hacer reemplazando todas las NA por 0 en la array
La sustitución de valores, se puede realizar en O(n*m), donde n es el número de filas y m es el número de columnas. Reemplazar por 0 no afecta el producto multiplicativo y, por lo tanto, esta es una solución efectiva. La transposición se puede calcular usando t(array). El producto se puede calcular mediante la siguiente sintaxis en R :
m1 %*% m2 , where m1 and m2 are the matrices involved.
Si m1 es la array de n*m dimensiones y m2 de m*n (ya que es la traspuesta), la array producto obtenida es una array cuadrada de n * n.
Ejemplo 1:
R
# declaring matrix mat = matrix(c(1, NA, 2, 3, NA, 4), ncol = 2) # replacing matrix NA with 0s mat[is.na(mat)] = 0 # printing original matrix print ("Original Matrix") print (mat) # calculating transpose of the # matrix transmat = t(mat) print ("Transpose Matrix") print (transmat) # calculating product of matrices prod = mat%*%transmat print ("Product Matrix") print (prod)
Producción:
[1] "Original Matrix" [,1] [,2] [1,] 1 3 [2,] 0 0 [3,] 2 4 [1] "Transpose Matrix" [,1] [,2] [,3] [1,] 1 0 2 [2,] 3 0 4 [1] "Product Matrix" [,1] [,2] [,3] [1,] 10 0 14 [2,] 0 0 0 [3,] 14 0 20
La array original tiene las dimensiones 3 x 2 y la transpuesta tiene la dimensión 2×3. Al reemplazar los valores faltantes por 0 y multiplicar estos dos entre sí, obtenemos la array producto equivalente a una array cuadrada de 3×3.
Ejemplo 2: La array original es de las dimensiones 1 x 3 y la transpuesta es de la dimensión 3×1. Al reemplazar los valores faltantes por 0 y multiplicar estos dos entre sí, obtenemos la array producto equivalente a la array cuadrada 1×1, que es básicamente una array de celdas singulares.
R
# declaring matrix mat = matrix(c(10, NA, 7), ncol = 3) # replacing matrix NA with 0s mat[is.na(mat)] = 0 # printing original matrix print ("Original Matrix") print (mat) # calculating transpose of the # matrix transmat = t(mat) print ("Transpose Matrix") print (transmat) # calculating product of matrices prod = mat%*%transmat print ("Product Matrix") print (prod)
Producción
[1] "Original Matrix" [,1] [,2] [,3] [1,] 10 0 7 [1] "Transpose Matrix" [,1] [1,] 10 [2,] 0 [3,] 7 [1] "Product Matrix" [,1] [1,] 149
Publicación traducida automáticamente
Artículo escrito por codersgram9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA