Ich möchte die Varianz für jede Zeile in einer Matrix berechnen. Für die folgende Matrix A
Ich möchte
bekommen %Vor% Ich weiß, dass ich das mit apply(A,1,var)
erreichen kann, aber gibt es einen schnelleren oder besseren Weg? Von Oktav kann ich das mit var(A,0,2)
machen, aber ich verstehe nicht, wie das Argument Y
der Funktion var()
in R verwendet werden soll.
Bearbeiten: Der tatsächliche Datensatz eines typischen Chunks hat ungefähr 100 Zeilen und 500 Spalten. Die Gesamtmenge der Daten ist jedoch etwa 50 GB.
Sie könnten var
über Zeilen (oder Spalten) mit rowSums
und rowMeans
Mit @Richards-Daten erhalten Sie
%Vor% Sie können auch eine allgemeinere Funktion erstellen, die eine ähnliche Syntax wie apply
erhält, aber vektorisiert bleibt (die spaltenweise Varianz ist langsamer, da die Matrix zuerst transponiert werden muss)
Dies ist einer der Hauptgründe, warum apply()
nützlich ist. Es soll an den Rändern eines Arrays oder einer Matrix arbeiten.
Ist 300 Millisekunden zu lang, um 10.000 Berechnungen durchzuführen?
Tags und Links r