Applica formula matematica solo su righe selezionate (JSL)Come posso applicare una formula matematica alle righe selezionate solo utilizzando JSL? Grazie per l'aiuto.
Re: Applicare la formula matematica solo su righe selezionate (JSL)Non suggerirei davvero di convertire direttamente il valore del campo Value perché a meno che tu non cambi anche la colonna Unit in Celsius.
È possibile utilizzare set each value con if-statement per sostituire i valori nella colonna. In altra parte "restituisci" lo stesso valore che c'è attualmente. Qualcosa del genere dovrebbe funzionare:
:Value << Set Each Value(
If(:Unit=="°F" /*& Selected()*/,
Conversions:Farenheit To Celsius(:Value)
, //else keep value
:Value
);
)
Re: Applicare la formula matematica solo su righe selezionate (JSL)Ho una situazione simile con una tabella di dati. Il mio obiettivo è convertire tutti i valori nella colonna "Valori" da Fahrenheit a Celsius. Lo script che sto usando per fare questo è:
For Each Row(If(:Unit=="°F", Selected(RowState())=1));
For Each Row(:Value = If(Selected(RowState(Row())), Conversions:Farenheit To Celsius(:Value)));
Lo script fa ciò di cui ho bisogno in termini di conversione, tuttavia, tutti i valori che non sono associati all'unità °F vengono rimossi. Esiste uno script che può essere aggiunto per ignorare le colonne non selezionate e alla fine mantenere i valori che non sono associati all'unità °F?

Re: Applicare la formula matematica solo su righe selezionate (JSL)Ecco un esempio della mia interpretazione di ciò che vuoi fare.

L'ultima colonna utilizza una formula di colonna. La formula implementa il calcolo condizionale.

Gli stati delle righe sono una parte vitale del funzionamento di JMP. Questo codice è equivalente ma senza installare una formula di colonna.
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 ) );
Re: Applicare la formula matematica solo su righe selezionate (JSL)Ecco un esempio che mostra come gestire esclusivamente le righe selezionate
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>
Re: Applicare la formula matematica solo su righe selezionate (JSL)Non hai menzionato se vuoi solo il valore o vuoi che questa sia un'altra formula di colonna. Se si tratta della formula della colonna, è necessario fornire ulteriori informazioni.Ecco un esempio con un calcolo che utilizza solo 2 righe su 6.
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 );