Appliquer la formule mathématique uniquement sur les lignes sélectionnées (JSL)Comment appliquer une formule mathématique aux lignes sélectionnées uniquement en utilisant JSL ? Merci pour votre aide.
Re : Appliquer la formule mathématique uniquement sur les lignes sélectionnées (JSL)Je ne suggérerais pas vraiment de convertir directement la valeur du champ Valeur, car à moins que vous ne changiez également la colonne Unité en Celsius.
Vous pouvez utiliser définir chaque valeur avec l'instruction if pour remplacer les valeurs dans la colonne. Dans la partie else "retourner" la même valeur que celle actuelle. Quelque chose comme ceci devrait fonctionner :
:Value << Set Each Value(
If(:Unit=="°F" /*& Selected()*/,
Conversions:Farenheit To Celsius(:Value)
, //else keep value
:Value
);
)
Re : Appliquer la formule mathématique uniquement sur les lignes sélectionnées (JSL)J'ai une situation similaire avec une table de données. Mon objectif est de convertir toutes les valeurs de la colonne "Valeurs" de Fahrenheit en Celsius. Le script que j'utilise pour ce faire est le suivant :
For Each Row(If(:Unit=="°F", Selected(RowState())=1));
For Each Row(:Value = If(Selected(RowState(Row())), Conversions:Farenheit To Celsius(:Value)));
Le script fait ce dont j'ai besoin en termes de conversion, cependant, toutes les valeurs qui ne sont pas associées à l'unité °F sont supprimées. Existe-t-il un script qui peut être ajouté pour ignorer les colonnes non sélectionnées et finalement conserver les valeurs qui ne sont pas associées à l'unité °F ?

Re : Appliquer la formule mathématique uniquement sur les lignes sélectionnées (JSL)Voici un exemple de mon interprétation de ce que vous voulez faire.

La dernière colonne utilise une formule de colonne. La formule implémente le calcul conditionnel.

Les états de ligne jouent un rôle essentiel dans le fonctionnement de JMP. Ce code est équivalent mais sans installer de formule de colonne.
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 : Appliquer la formule mathématique uniquement sur les lignes sélectionnées (JSL)Voici un exemple qui montre comment traiter exclusivement les lignes sélectionnées
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 : Appliquer la formule mathématique uniquement sur les lignes sélectionnées (JSL)Vous n'avez pas mentionné si vous voulez juste la valeur ou si vous voulez que ce soit une autre formule de colonne. S'il s'agit d'une formule de colonne, vous devez fournir plus d'informations.Voici un exemple avec un calcul utilisant seulement 2 lignes sur 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 );