Soustraction de plusieurs colonnesBonjour l'équipe,
Besoin d'aide pour développer un script pour faire la soustraction de plusieurs colonnes, le nom et le nombre de colonnes sont variables,
peut changer en fonction de l'analyse,
Besoin de remplir le delta de la colonne avec des différences toutes les valeurs de la même ligne,
exemples de données comme ci-dessous

AnalytiqueTableau de donnéesScriptRe: Soustraction de plusieurs colonnessalut @jinsejoseph
Pouvez-vous donner un exemple de la formule que vous souhaitez utiliser ?Cela ressemble à quelque chose que j'utiliserais la transformation personnalisée dans le Outils de script complément pour.

Re: Soustraction de plusieurs colonnesSalut, merci pour la réponse,
J'utilise JMP15 pouvez-vous m'aider à pointer vers le code que je peux utiliser,
Je suis débutant dans JMP
Merci d'avance
Re: Soustraction de plusieurs colonnesSortie attendue en delta comme ci-dessous,

Re: Soustraction de plusieurs colonnesSalut ,
J'écrivais un script pour l'analyse des données, et j'ai besoin que cela implémente cette logique entre le code uniquement pour une table de données,
pouvez-vous m'aider à pointer vers le code que je peux utiliser
Merci d'avance
Re: Soustraction de plusieurs colonnesVoici la formule que j'utiliserais.Il repose sur la fonction matricielle Loc() qui renvoie toutes les entrées non nulles dans une matrice.
x = :data[Row()] || :data1[Row()] ||
:data2[Row()] || :data3[Row()] ||
:data4[Row()] || :data5[Row()] ||
:data6[Row()] || :data7[Row()] ||
:data8[Row()] || :data9[Row()];
y = Loc( x );
Try( x[y[2]] - x[y[1]], . );
Re: Soustraction de plusieurs colonnesSalut Jim,
Merci pour la contribution,
Mais le nom de la colonne est un contrôle variable et le nom peut changer en fonction d'une exécution à l'autre,
comment coder dans cette situation ?
Re: Soustraction de plusieurs colonnesEn supposant que vous ne connaissiez pas les noms et que vous ne connaissiez pas le nombre de colonnes, le code ci-dessous créera la formule requise, puis créera la nouvelle colonne avec la formule générée
Names Default To Here( 1 );
dt = Current Data Table();
// Get the columns
colNames = dt << get column names( string, continuous );
// Build the formula
theExpr = "dt<<NEW column=""></NEW>

L'exemple de tableau de données que j'ai utilisé est joint
Re: Soustraction de plusieurs colonnesVous pouvez également le transformer en fonction si vous devez l'utiliser plusieurs fois.
Voici un exemple :
- Fonction
- Utilise regex pour filtrer jusqu'aux colonnes d'intérêt
- Nécessite JMP16 en raison de chaque filtre
- Utilise Loc() et les calculs matriciels
- Crée un nouveau delta de colonne avec les valeurs
Names Default To Here(1);
//example datatable
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Column 1",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 0, 0, 1, 0]),
Set Display Width(55)
),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([0, 2, 3, 0, 0])),
New Column("Column 3",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([0, 3, 0, 0, 0]),
Set Display Width(87)
),
New Column("Column 4", Numeric, "Continuous", Format("Best", 12), Set Values([3, 0, 4, 0, 0])),
New Column("col", Character, "Nominal", Set Values({"a", "a", "a", "a", "a"}))
);
difference_between_min_max = Function({dt_ref, col_prefix_regex},
{Default Local},
//get columnn names of interest based on col_prefix
col_names_all = dt_ref << Get Column Names("Numeric", "String");
col_names_of_interest = Filter Each({val}, col_names_all,
!IsMissing(Regex(val, col_prefix_regex));
);
show(col_names_of_interest);
//all values for columns of interest, transpose for calculations
m = Transpose(dt_ref[0, col_names_of_interest]);
//replace 0 with missing to avoid calculation with those
m[Loc(m, 0)] = .;
//Get max and min values and deduct them
result = V Max(m) - V Min(m);
//Replace missing values with 0 for final results
result[Loc(result,.)] = 0;
//we could return result matrix here OR we can create new column with the function
dt_ref << New Column("delta", Numeric, Continuos, Set Values(result));
);
//example table in this example
difference_between_min_max(dt, "(Column )");
//example table by txnelson
//difference_between_min_max(Current Data Table(), "^(\D{1})$");
Pourrait aussi le transformer en Fonction personnalisée
Re: Soustraction de plusieurs colonnesSalut Jim,
Merci pour l'aide,
la solution fonctionne bien 
Re: Soustraction de plusieurs colonnesMaintenant, je vois, dans ce cas, j'utiliserais personnellement la fonction de transformation personnalisée dans le Outils de script ajouter à.Je sélectionnerais toutes les colonnes que vous souhaitez transformer (je pense data1-data10), puis sélectionnerais Custom Transformation dans le menu Cols (disponible après l'installation du complément) et saisirais ces paramètres :
