Benötigen Sie eine Spalte basierend auf einer selektiven Bedingung für andere SpaltenHallo alle,
Ich suche nach % der Fehler im Messverfahren. Meine Anforderung und Beispieldaten sind unten.
Gibt es hier Hilfe?
Danke,
SkripterstellungBetreff: Benötigen Sie eine Spalte, die auf einer selektiven Bedingung für andere Spalten basiertDer schwierigste Teil hier ist, eine richtige Gruppierungsspalte zu definieren (siehe Avg_Time und verkettet mit Sample --> Group).
Dies ist vergleichbar mit Ihrer "Anzahl", die mit Sample verkettet ist.
Wenn ich die Anforderungen berechnen müsste, würde ich es wie in der Tabelle in Spalte "Ergebnis" tun. Hinter den Kulissen versucht es in jeder Zeile zu finden: alle Zeilen, die zur selben Gruppe gehören, und zeigt die Messpunkte in der Spalte "Messung in Gruppe".
Einzelheiten entnehmen Sie bitte der beigefügten Tabelle.

Betreff: Benötigen Sie eine Spalte, die auf einer selektiven Bedingung für andere Spalten basiertHallo Georg,
Es scheint in der Tabellenspalte Formel gut zu funktionieren. Aber ich bin nicht in der Lage, es in ein Skript zu machen. Ich habe auch einen ähnlichen Ansatz versucht, der auf einer For-Schleife und einer anderen Spalte basiert, aber ich bin nicht in der Lage, Muster von Messungen zu generieren, um die endgültigen Ergebnisse zu erhalten. Hier ist das Skript, das ich versuche --
/////////////////////////////////////////////////////////////////
dt = Current Data Table();
dt << New Column( "Pattern0",
Expression,
(row_index_lst = {} ; row_Time_A = :Time_A ; row_Sample = :Sample ; threshold = 60 * 15 ;
For Each Row(
If( Abs( :Time_A - row_Time_A ) < threshold & :Sample == row_Sample,
Insert Into( row_index_lst, Row() )
)
));
(:Measurement << get values)[row_index_lst];
);
///////////////////////////////////////////
// similar approach but based on different column and For loop--
//////////////////////////////////////////////////////
dt << New Column( "Pattren",
Expression,
For( i = 1, i <= N Rows( dt ), i++,
Row_List = {};
If(
:Count == Lag( :Count, -1 ) & :Sample == Lag( :Sample, -1 ) | :Count == Lag( :Count, 1 ) &
:Sample == Lag( :Sample, 1 ),
Insert Into( Row_List, Row() )
);
(:Measurement << get values)[Row_List];
)
);
/////////////////////////////////////////////////////////////
Beide geben nur leere Spalten aus. Irgendwelche Vorschläge, wie ich Ihre Formel in ein Skript umwandeln kann?
Danke noch einmal.
Betreff: Benötigen Sie eine Spalte, die auf einer selektiven Bedingung für andere Spalten basiertIch bin mir nicht sicher, was Sie tun werden.
Wenn Sie diese Berechnung zur aktuellen Datentabelle hinzufügen möchten, funktioniert der folgende Code. Sie müssen diese Berechnung in "Formula()" einfügen.
Wenn Sie eine Spalte haben und sie skripten möchten, ist es am besten, das Tabellenskript aus dem roten Dreiecksmenü der Tabelle zu kopieren. Dort können Sie das Skript abrufen und überprüfen, wie Sie die Tabelle (oder Spalte) per Skript generieren.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Pattern",
Expression,
"None",
Formula(
(row_index_lst = {} ; row_Time_A = :Time_A ; row_Sample = :Sample ; threshold = 60 * 15 ;
For Each Row(
If( Abs( :Time_A - row_Time_A ) < threshold & :Sample == row_Sample,
Insert Into( row_index_lst, Row() )
)
));
(:Measurement << get values)[row_index_lst];
),
Set Display Width( 232 )
);