Mathematische Formel nur auf ausgewählte Zeilen anwenden (JSL)Wie wende ich eine mathematische Formel nur mit JSL auf ausgewählte Zeilen an? Vielen Dank für Ihre Hilfe.
Betreff: Mathematische Formel nur auf ausgewählte Zeilen anwenden (JSL)Ich würde nicht wirklich empfehlen, den Wert des Felds „Wert“ direkt umzuwandeln, es sei denn, Sie ändern auch die Spalte „Einheit“ in Celsius.
Sie können jeden Wert mit der if-Anweisung festlegen, um Werte in der Spalte zu ersetzen. Im else-Teil „return“ ist derselbe Wert vorhanden, der derzeit vorhanden ist. So etwas sollte funktionieren:
:Value << Set Each Value(
If(:Unit=="°F" /*& Selected()*/,
Conversions:Farenheit To Celsius(:Value)
, //else keep value
:Value
);
)
Betreff: Mathematische Formel nur auf ausgewählte Zeilen anwenden (JSL)Ich habe eine ähnliche Situation mit einer Datentabelle. Mein Ziel ist es, alle Werte in der Spalte „Werte“ von Fahrenheit in Celsius umzuwandeln. Das Skript, das ich dazu verwende, ist:
For Each Row(If(:Unit=="°F", Selected(RowState())=1));
For Each Row(:Value = If(Selected(RowState(Row())), Conversions:Farenheit To Celsius(:Value)));
Das Skript erledigt hinsichtlich der Konvertierung genau das, was ich von ihm benötige. Es werden jedoch alle Werte entfernt, die nicht mit der Einheit °F verknüpft sind. Gibt es ein Skript, das hinzugefügt werden kann, um die nicht ausgewählten Spalten zu ignorieren und letztendlich die Werte beizubehalten, die nicht mit der Einheit °F verknüpft sind?

Betreff: Mathematische Formel nur auf ausgewählte Zeilen anwenden (JSL)Hier ist ein Beispiel meiner Interpretation dessen, was Sie tun möchten.

Die letzte Spalte verwendet eine Spaltenformel. Die Formel implementiert die bedingte Berechnung.

Zeilenzustände sind ein wesentlicher Bestandteil der Funktionsweise von JMP. Dieser Code ist äquivalent, jedoch ohne die Installation einer Spaltenformel.
Names Default To Here( 1 );
col = Current Data Table() << New Column( "Conditional BMI" );
For Each Row( col[] = If( Selected( Row State( Row() ) ), (703 * :weight) / :height ^ 2 ) );
Betreff: Mathematische Formel nur auf ausgewählte Zeilen anwenden (JSL)Hier ist ein Beispiel, das zeigt, wie ausschließlich mit ausgewählten Zeilen umgegangen wird
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
// pause to show the original data table
wait(5);
// select some rows
dt << select where( :sex == "F" );
For( i = 1, i <= N Rows( dt << get selected rows ), i++,
dt:age[i] = dt:age[i] - 2
);
dt:weight[dt<<GET selected="" rows=""></GET>
Betreff: Mathematische Formel nur auf ausgewählte Zeilen anwenden (JSL)Sie haben nicht erwähnt, ob Sie nur den Wert möchten oder ob dies eine andere Spaltenformel sein soll. Wenn es sich um eine Spaltenformel handelt, müssen Sie weitere Informationen angeben.Hier ist ein Beispiel mit einer Berechnung, die nur 2 von 6 Zeilen verwendet.
Names Default to Here(1);
dt = new Table("Test", Add Rows(6), New Column("Values", numeric, continuous, Set Values(J(6,1, Random Integer(1,20))) ) );
mysum = :Values[2]^2 + :Values[4]^2 - 4 * :Values[2]*:Values[4] ;
show(mysum );