Ich habe mich gefragt: Angenommen, Sie wollen eine Matrix verwandeln, zum Beispiel, und Sie wollen so etwas wieapply(), wenn die Funktion auf Index abhängt und mutieren() Effizienz
Y[i,j] = i*j*X[i,j]
eine Verwendung für die Schleife ist viel langsamer als andere Optionen, und apply() weiß nicht, welche i und j es verwendet.
Eine Lösung, die ich mir vorstellen kann, ist die Definition eines data.frame-ähnlichen Objekts mit den Spalten i, j, X und dann die Verwendung von mutate(), um die gewünschten Y-Werte zu erhalten.
Ich habe zwei Fragen:
(a) Ist es möglich, die obige Matrix zu konstruieren, einen statt for-Schleife apply()? Wenn ja, ist es effizienter, es so zu konstruieren oder den muate() -Trick zu verwenden?
(b) Angenommen, ich habe sowohl Matrix- als auch Data.frame-Objektdarstellungen. Was ist effizienter, wenn ich Operationen mit Zeilen- und Spaltenindex ausführen möchte? Zum Beispiel, wenn eine Statistik wie die Summe von (Y [i, j] - Mittelwert (Y)) ²/(i * j) wollen. Ich weiß, dass ich Matrizen mit den Zeilen- und Spaltenindizes konstruieren kann und dann einfach vektorisierte Funktionen verwenden kann, aber ist es besser als die Verwendung von Mutate?