Betrachten Sie den folgenden Datenrahmen:
%Vor%Ich möchte die Spalte Wert auf der Grundlage der Spalte Auswählen auf der Basis der Spalten A, B und C Zeile für Zeile effizient zuweisen.
Zum Beispiel möchte ich in Zeile 1 Wert gleich dem Element in Spalte B sein - d. h. Wert [1] = 10.
Meine aktuelle Methode ist die Verwendung einer for-Schleife:
%Vor%Was zur gewünschten Ausgabe führt:
%Vor%Gibt es dafür einen effizienteren oder alternativen Weg? Ich denke, das ist eine Art von Merge () oder Tabellen Join Type Operation.
P.S. Ich war mir nicht ganz sicher, wie ich diese Operation beschreiben sollte - alle Vorschläge für eine bessere Frage / Beschreibung sind ebenfalls willkommen.
Ich würde Matrixindizierung und match
verwenden. Dieser Ansatz wird vektorisiert, also viel schneller als eine for
oder apply
Schleife Ihnen geben würde:
Wenn Sie mit der Matrix-Indexierung nicht vertraut sind, ist dies in ?"["
:
Eine dritte Form der Indexierung erfolgt über eine numerische Matrix mit der einen Spalte für jede Dimension: Jede Zeile der Indexmatrix wählt dann ein einzelnes Element des Arrays aus und das Ergebnis ist ein Vektor
Tags und Links r