僅對選定行應用數學公式 (JSL)如何僅使用 JSL 將數學公式應用於選定的行? 感謝您的幫助。
回复:僅對選定行應用數學公式 (JSL)我真的不建議直接轉換“值”字段的值,因為除非您還將“單位”列更改為攝氏度。
您可以使用 if 語句設置每個值來替換列中的值。 在其他部分“返回”當前相同的值。 像這樣的東西應該有效:
:Value << Set Each Value(
If(:Unit=="°F" /*& Selected()*/,
Conversions:Farenheit To Celsius(:Value)
, //else keep value
:Value
);
)
回复:僅對選定行應用數學公式 (JSL)我的數據表也有類似的情況。 我的目標是將“值”列中的所有值從華氏度轉換為攝氏度。 我用來執行此操作的腳本是:
For Each Row(If(:Unit=="°F", Selected(RowState())=1));
For Each Row(:Value = If(Selected(RowState(Row())), Conversions:Farenheit To Celsius(:Value)));
該腳本執行了我需要它在轉換方面執行的操作,但是,所有與單位 °F 無關的值都被刪除。 是否可以添加一個腳本來忽略未選擇的列並最終保留與單位 °F 無關的值?

回复:僅對選定行應用數學公式 (JSL)這是我對你想做的事情的解釋的一個例子。

最後一列使用列公式。 該公式實現了條件計算。

行狀態是 JMP 運行方式的重要組成部分。 此代碼是等效的,但沒有安裝列公式。
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 ) );
回复:僅對選定行應用數學公式 (JSL)這是一個示例,展示瞭如何專門處理選定的行
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>
回复:僅對選定行應用數學公式 (JSL)您沒有提到您是否只想要該值或者您希望這是另一個列公式。 如果是s列公式則需要提供更多信息。這是僅使用 6 行中的 2 行進行計算的示例。
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 );