J'ai deux matrices de même taille. Je voudrais les fusionner.
Matrice d'entrée A: P>
v1 v2 v3 v4 v5 v6 1 0 5 8 1 2 0 2 5 0 2 4 3 0 3 8 2 0 2 0 0 4 1 4 2 0 0 0 5 2 3 0 0 0 0 6 0 0 0 0 0 0
3 Réponses :
Voici une approche.
Premièrement, trouvez les zéros dans le inférieur.tri code> partie de la matrice et remplacez ceux-ci avec des valeurs de matrice b. P> A[upper.tri(A)] <- t(A)[upper.tri(A)]
A
# v1 v2 v3 v4 v5
# [1,] 0 5 8 1 2
# [2,] 5 0 2 4 3
# [3,] 8 2 0 2 5
# [4,] 1 4 2 0 3
# [5,] 2 3 5 3 0
Vous pouvez obtenir les 0 indices dans matrice A code> et remplacer les éléments correspondants de B code>. inds <- A == 0
A[inds] <- B[inds]
A
# v1 v2 v3 v4 v5
#1 0 5 8 1 2
#2 5 0 2 4 3
#3 8 2 0 2 5
#4 1 4 2 0 3
#5 2 3 5 3 0
@Freeego heureux d'avoir été de l'aide! N'hésitez pas à Acceptez la réponse en cliquant sur Cochez la case à côté du bouton de vote à gauche si vous estimez que cela vous a été utile. . :-) Vous pouvez accepter une seule réponse par message.
Sur la base du résultat attendu, vous pouvez également utiliser Pmax () code> ou ifelse () code>: pmax(mat1, mat2)
V1 V2 V3 V4 V5
[1,] 0 5 8 1 2
[2,] 5 0 2 4 3
[3,] 8 2 0 2 5
[4,] 1 4 2 0 3
[5,] 2 3 5 3 0
ifelse(mat1 == 0, mat2, mat1)
V1 V2 V3 V4 V5
[1,] 0 5 8 1 2
[2,] 5 0 2 4 3
[3,] 8 2 0 2 5
[4,] 1 4 2 0 3
[5,] 2 3 5 3 0
A + B CODE>? Une matrice sera-t-elle toujours des informations manquantes de l'autre matrice? Les informations manquantes seront-elles toujours zéro?Si le boîtier zéro est vrai, la réponse est donc A + B comme @ AA5C1D2H2I1M1N2O1R2T1 suggéré.
Désolé, je n'ai pas précisé. Une matrice peut avoir des informations recouvertes de l'autre matrice. Les informations manquantes sont toujours nulles. La matrice devrait être comme celle mise à jour de la question.