effectuer des calculs à l'aide des colonnes sélectionnéesSalut,
J'ai du mal à trouver une bonne solution de script pour cela.Je voudrais sélectionner quelques colonnes, puis effectuer des calculs sur elles.Les colonnes sélectionnées sont flexibles, parfois il peut y en avoir 2 mais parfois il peut y avoir plus de 10 colonnes pour effectuer ce calcul.
Par exemple
| UN | B | C | nouvelle colonne avec la formule sqrt(sum(A^4, B^4, C^4) |
| 1 | 2 | 3 | ... |
| 4 | 5 | 6 | ... |
| 7 | 8 | 9 | ... |
En ce moment, j'ai le script pour extraire la colonne sélectionnée. Mais une fois qu'ils sont dans une liste avec le nom de la colonne, je ne sais pas comment résumer la colonne en utilisant la formule que j'ai ci-dessus...
dt = Current Data Table();
cols = dt << get selected columns;
Je vous remercie beaucoup pour votre aide!
Re : effectuer des calculs à l'aide des colonnes sélectionnéesJ'ai choisi la méthode à utiliser, basée sur les très belles capacités des opérateurs Matrix en JSL.La déclaration
mat = Sqrt( Sum( mat ^ 4 ) );
est une illustration de la manière dont les calculs peuvent être réalisés avec précision et concision à l'aide de matrices.
Mais pour utiliser les opérateurs matriciels, les données doivent être dans une matrice. Ainsi, pour chaque ligne, la matrice Mat est d'abord définie comme étant une matrice vide
mat = [];
puis la boucle For() prend chacune des colonnes spécifiées dans << Get Selected Columns et ajoute la valeur de cette colonne pour la ligne donnée, à la matrice "Mat" en tant que nouvel élément de la matrice.Il s'agit de "concaténer" la valeur de la colonne de la ligne actuelle à la matrice.
mat = mat || Column( cols[i] )[Row()]
Re : effectuer des calculs à l'aide des colonnes sélectionnéesMerci Jim! Votre script est très utile comme toujours.Pour m'aider à mieux comprendre JSL, pouvez-vous s'il vous plaît expliquer ce que fait cette ligne de code ?
mat = mat || Column( cols[i] )[Row()]
Re : effectuer des calculs à l'aide des colonnes sélectionnéesVoici, en utilisant JSL,
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Calc",
formula(
cols = dt << get selected columns;
mat = [];
For( i = 1, i <= N Items( cols ), i++,
mat = mat || Column( cols[i] )[Row()]
);
mat = Sqrt( Sum( mat ^ 4 ) );
)
);
dt:calc << delete formula;
comment je créerais une colonne de formules pour gérer votre problème