Ersetzen von Matrixelementen, die von einer anderen Matrix indiziert wurden

Nach mehrstündiger Suche greife ich auf Ihr Fachwissen zurück. Anfänger in R, ich versuche, meinen Code zu beschleunigen. Mein Ziel ist es, die Werte in einer Matrix zu ersetzenA. Ich möchte jedoch Werte ersetzen, die auf zwei Vektoren einer anderen Matrix basierenB. B[, 1] ist der Name der Zeilei der MatrixA. Die zweite Spalte,B[, 2] entspricht dem Namen der Spalte der MatrixA.

Die erste Version meines Codes war die Verwendung der Match-Funktion in einer Schleife.

for(k in 1:L){
  i <- B[k,1]
  j <- B[k,2]
  d <- match(i,rownames(A))
  e <- match(j,colnames(A))
  A[d, e] <- 0
  }

Die zweite Version erlaubte es mir, ein wenig zu beschleunigen:

for( k in 1:L) {
  A[match(B[k,1],rownames(A)), match(B[k,2],colnames(A))] <- 0
  }

Die Bearbeitungszeit ist jedoch zu lang. Also dachte ich, das @ zu verwendapply Funktion. Dafür muss ich @ verwendapply in jeder Zeile Vektoren vonB.

Benutztapply Funktion eine gute Möglichkeit? Oder gehe ich falsch?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage