Berechnen von Delta basierend auf wenigen geordneten AttributenHallo Leute,
Ich habe das folgende Problem, dass ich denke, ein Skript wird wahrscheinlich helfen. Ich möchte das Delta wie in der Delta-Spalte angezeigt finden. In Tabelle 1 wird das Delta basierend auf derselben ID und test_id abgeleitet, das Ergebnis wird aus test_type = 31 / main_rad = 2 / sub_rad = 0 abgerufen und aus dem Feld herausgenommen test_type = 33 / main_rad = 2 / sub_rad = 0. Und der Prozess geht weiter.
In Tabelle 2 wird das Delta basierend auf derselben ID, test_id und test_type, abgeleitet. Es wird das Ergebnis von main_rad = 2 / sub_rad = 0 und minus von main_rad = 3 / sub_rad = 0 erhalten. Und der Prozess wird für das nachfolgende main_rad und sub_rad fortgesetzt.
* In den tatsächlichen Daten gibt es Tausende von IDs. Dies ist schwierig, wenn ich sie nacheinander anhand von test_type und Haupt- und Subradius vergleichen möchte. Skripts dazu zu haben, wird äußerst hilfreich sein.
Bitte beachten Sie das Bild unten:

Vielen Dank.
Re: Berechnen von Delta basierend auf wenigen geordneten AttributenDanke, Jim! Es gab einen kleinen Fehler im Skript, aber ich habe es herausgefunden.
Re: Berechnen von Delta basierend auf wenigen geordneten AttributenHier ist ein kleines Skript, das tut, was Sie gefragt haben. Es funktioniert für die erste Datentabelle. Bei geringfügigen Änderungen funktioniert das gleiche Konzept für die zweite Datentabelle.
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Rows( dt ), i++,
If( :test_ic[i] == 566,
target_row = (dt << get rows where( :ID == :ID[i] & :test_ic == 568 & :main_rad == :main_rad[i] & :sub_rad == :sub_rad[i] ))[1];
If( Is Missing( target_row ) == 0,
:delta[i] = :result[i] - :result[target_row],
:delta[i] = .
);
,
:delta[i] = .
)
);