Ich habe ein paar große Datensätze, die ich zu kombinieren versuche. Ich habe ein Spielzeugbeispiel dafür erstellt, was ich tun möchte. Ich habe drei Tabellen:
%Vor% Die drei Tabellen sind x
, y
und proportion
. Für jedes Element in x
möchte ich aus der gesamten Tabelle y
mit den Wahrscheinlichkeiten aus der Tabelle proportion
samplen und sie zu einer anderen Tabelle zusammenfassen. Die Methode, die ich gefunden habe, ist:
Aber diese Methode ist speicherintensiv und langsam, da sie zuerst die beiden Tabellen kreuzt und dann von ihr abtastet. Gibt es eine Möglichkeit, diese Aufgabe effizient (Speicher und Zeit) zu erledigen?
Ich hatte ein ähnliches Problem in diese Frage. Ich habe Ihre Lösung zum besseren Vergleich in Funktion gebracht:
%Vor%Mein Ansatz:
%Vor%Vielleicht gibt es weitere Verbesserungen, die ich aktualisieren werde, falls sie gefunden werden. Die ersten beiden Operationen scheinen zu kompliziert zu sein, vielleicht können sie verkürzt werden, aber da ich nicht gesehen habe, dass sie die Berechnung beeinflussen, habe ich sie nicht neu geschrieben.
Wie bereits erwähnt, könnten Sie Probleme mit myFunction
bekommen, wenn Ihre Gruppen nur ein Element enthalten würden. Also habe ich es modifiziert, basierend auf den Kommentaren von diesem Beitrag.
Wir können eine marginale Geschwindigkeitsverbesserung sehen.
Tags und Links r data.table