Je trace un graphique CD vs. Profondeur, pour un total de 8 ensembles dans l'exemple (Aa, Ab, Ba, Bb....). Pour chaque test A~D, il y a 2 « emplacements » différents a et b.
J'aimerais choisir 2 ensembles spécifiquement et créer un graphique delta ; par exemple, si je sélectionne Aa et Ba, les valeurs CD sont soustraites à chaque profondeur et le graphique CD par rapport à la profondeur doit être généré.
Est-ce quelque chose que je peux faire sur JMP ? J'essayais de faire cela dans Excel en utilisant la fonction xlookup, mais comme la quantité de données est énorme (plus de 30 000 lignes), c'est tout simplement trop lent. Je ne suis pas sûr que ce soit quelque chose que je puisse faire sur JMP.
Exemple d'ensemble de données

Exemple de graphique CD vs. Profondeur ;

Avec des scripts, cela peut certainement être fait et peut-être aussi sans scripts au moins en tant que flux de travail. Pouvez-vous fournir un exemple d'ensemble de données et ne pouvez-vous sélectionner que deux paires en même temps ? L'emplacement est-il également toujours le même pour les tests sélectionnés ?
Bien sûr, voici l'exemple de fichier de données.
Je cherche à obtenir la valeur delta entre deux paires, donc oui je choisirais toujours 2 pour la comparaison.
L'emplacement peut ne pas être le même, dans l'ensemble de données réelles, j'ai des échantillons qui ont plus d'emplacements. Je dois également comparer un échantillon à l'autre ainsi qu'un emplacement à l'autre. Par exemple, l'échantillon Aa à l'échantillon Cb
Voici
Est-il possible de créer une nouvelle table de données après les sélections de l'utilisateur ? Mon idée de base serait d'utiliser un script :
- Ajoutez une colonne de commande à vos données
- Créer une interface utilisateur dans laquelle l'utilisateur peut choisir dans une liste déroulante les combinaisons à comparer
- L'utilisateur appuie sur OK et une nouvelle table sera créée avec les données de ces deux combinaisons
- La différence sera calculée
- Visualisez les données
Une autre option qui me vient à l'esprit est de diviser les données et de précalculer toutes les différences en colonnes. Vous pouvez ensuite utiliser le sélecteur de colonnes dans le générateur de graphiques pour modifier les valeurs à comparer.
Je voulais voir si je pouvais changer rapidement les conditions de comparaison. Il semble que ce ne soit pas aussi simple.
Calculer toutes les différences ne fonctionnerait pas car il y a tellement d'ensembles de données, je pense.
Merci pour l'aide, laissez-moi réfléchir un peu plus.
Seules les options de script me viennent à l'esprit (en dehors de ce fractionnement). Je considère que les tables JMP ressemblent davantage à des tables de base de données qu'à des feuilles de calcul, donc les calculs sont (généralement) effectués au niveau des lignes et sous forme d'agrégations. Si le nombre de tests est toujours le même pour chacune des « paires », cela peut peut-être être fait avec quelques colonnes de formules et un filtre de données global pour faciliter le choix des options.
Avec les scripts, vous pouvez créer des choses comme ceci (il manque quelques vérifications de cohérence)
Names Default To Here(1);
dt = Current Data Table();
dt << New Column("Group", Character, Nominal, Formula(
"Test: " || :Test || " Location: " || :Location
));
Summarize(dt, groups = By(:Group));
dt_temp = New Table("TEMPTABLE",
Add Rows(5), // same as your group size
Compress File When Saved(1),
New Column("Depth",
Numeric,
"Continuous",
Values([0, 20, 40, 60, 80])
),
New Column("CD First",
Numeric,
"Continuous"
),
New Column("CD Second",
Numeric,
"Continuous"
),
New Column("CD diff",
Numeric,
"Continuous"
),
Invisible
);
update_expr = Expr(
Try(
first_group = (lb_first << get selected)[1];
second_group = (lb_second << get selected)[1];
first_cd = dt[dt << Get Rows Where(:Group == first_group), "CD (nm)"];
second_cd = dt[dt << Get Rows Where(:Group == second_group), "CD (nm)"];
dt_temp[0, "CD First"] = first_cd;
dt_temp[0, "CD Second"] = second_cd;
dt_temp[0, "CD Diff"] = Abs(second_cd - first_cd);
,
dt_temp[0, "CD First"] = [., . ,., ., .];
dt_temp[0, "CD Second"] = [., . ,., ., .];
dt_temp[0, "CD Diff"] = [., . ,., ., .];
);
);
nw = New Window("Demo",
H List Box(
Panel Box("Pick First Group",
lb_first = List Box(groups)
),
Panel Box("Pick Second Group",
lb_second = List Box(groups)
),
Data Table Box(dt_temp),
gb = dt_temp << Graph Builder(
Size(525, 454),
Show Control Panel(0),
Variables(X(:CD diff), Y(:Depth)),
Elements(Points(X, Y, Legend(11)), Line(X, Y, Legend(13)))
),
Panel Box("Actions",
Lineup Box(N Col(1),
Button Box("Cancel")
)
)
)
);
lb_first << Set Max Selected(1);
lb_second << Set Max Selected(1);
lb_first << Set Script(update_expr);
lb_second << Set Script(update_expr);
Eval(EvalExpr(
nw << On Close(
Close(dt_temp, no save);
)
));

Je pense que vous pouvez également dupliquer votre table afin de pouvoir faire une auto-jointure avec des colonnes « dupliquées », la joindre à la table d'origine par profondeur, supprimer les auto-jointures, créer un sélecteur de regroupement, une formule pour les différences et créer un tracé

Et c'est facile à automatiser dans JMP.
