Ich habe zwei Datenrahmen, ähnlich wie diese:
%Vor%Ich möchte die Suche $ t von den Daten $ v subtrahieren, wo die Spalten h und c übereinstimmen.
Ich dachte, so etwas würde funktionieren.
%Vor%, weiß aber nicht, dass ich implizit über die Datenzeilen iterieren möchte
Ich habe das gemacht
%Vor%was gut funktioniert, aber ich hoffe, dass jemand einen vernünftigeren Weg vorschlagen kann, der keine Schleife beinhaltet.
Klingt so, als könntest du dich zusammenschließen und dann matchen:
%Vor%Für Ihre echten Daten, ist die Zusammenführung und Berechnung schneller?
Wenn Daten und / oder Lookup wirklich groß sind, können Sie data.table verwenden, um vor der Zusammenführung einen Index zu erstellen, um ihn zu beschleunigen.
Eine Alternative, die 1.) denen vertraut ist, die mit SQL-Abfragen vertraut sind und 2.) oft schneller als die Standard-Zusammenführung ist, die sqldf Paket. (Beachten Sie, dass Sie unter Mac OS X wahrscheinlich Tcl / Tk installieren möchten, von dem sqldf abhängt.) Als zusätzlichen Bonus konvertiert sqldf standardmäßig Zeichenfolgen automatisch in Faktoren.
%Vor% Mit Ihren Integer-Spalten glaube ich nicht, dass Sie irgendetwas tun können, um das Angebot von JD zu verbessern. Wenn Sie jedoch Strings in den Spalten hätten, in denen Sie zusammenführen, könnten Sie Faktoren mit as.factor
erstellen, die schneller werden könnten Der merge
hängt von der Größe Ihres Datensatzes ab und davon, wie viele Zusammenführungen / Sortierungen Sie erwarten:
Tags und Links r performance