Ändern der Spaltenwerte basierend auf dem SpaltenspezifikationslimitWir haben einen Phasentest, bei dem der Wert manchmal gerne um 360 Grad gekippt wird. Ich möchte ein Skript, das die Tabellenspaltendaten durchsuchen, einen Durchschnitt ermitteln und ihn dann mit der LSL / USL vergleichen kann. Wenn das Vorzeichen des Durchschnitts gegenüber dem Spezifikationslimit liegt, addieren Sie 360 zu diesem Wert.
Ich kann kein Blanket machen If (: test <0, t1 =: column + 360; t1;), da der Tester mit den Daten umgeht.
Ich habe eine Beispieltabelle angehängt und in den letzten beiden Spalten befindet sich mein Problem.
Danke im Voraus
DatentabelleSkriptingBetreff: Ändern der Spaltenwerte basierend auf dem SpaltenspezifikationslimitSehen Sie, ob dieses kleine Skript Ihnen das gibt, was Sie wollen
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dt, colList[i] ) << get property( "spec limits" );
If( Is Missing( specs["LSL"] ) == 0 & Is Missing( specs["USL"] ) == 0,
If( !(specs["LSL"] <= Col Mean( Column( dt, colList[i] ) ) <= specs["USL"]),
For Each Row( As Column( dt, colList[i] ) = -1 * As Column( dt, colList[i] ) )
)
);
);
Betreff: Ändern der Spaltenwerte basierend auf dem SpaltenspezifikationslimitVielen Dank, Herr Nelson.
Ich musste das Skript ein wenig ändern. Ich habe die Multiplikation in Addition geändert und den Mittelwert in Median geändert. Ich habe katastrophale Fehler nicht berücksichtigt, als ich den ursprünglichen Beitrag verfasst habe. Die Spalten 40 und 41 hatten Col-Mittelwerte, die nicht zwischen LSL und USL lagen.
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dt, colList[i] ) << get property( "spec limits" );
If( Is Missing( specs["LSL"] ) == 0 & Is Missing( specs["USL"] ) == 0,
If( !(specs["LSL"] <= Col Median( Column( dt, colList[i] ) ) <= specs["USL"]),
For Each Row( As Column( dt, colList[i] ) = 360 + As Column( dt, colList[i] ) )
)
);
);