Bonjour à l'équipe et aux experts de JMP,
J'ai un problème simple, je pense que JSL serait la meilleure approche, mais je ne sais pas comment coder en JSL. Je devrais probablement trouver le temps et apprendre !
Fondamentalement, j'ai une liste d'éléments, "Thé", "Oeufs", "Pain", "Lait", etc. Chaque élément apparaît seul dans une colonne, et le nombre de colonnes peut varier mais serait fixé dans une instance de tableau particulière. . Chaque ligne représente une observation indépendante des éléments. Un élément spécifique peut apparaître dans n'importe quelle colonne, dans n'importe quelle ligne, mais seulement une fois par ligne ou ne pas apparaître du tout.
Je voudrais utiliser un script JSL pour indiquer dans une nouvelle colonne si un ensemble particulier d'éléments (par exemple "Thé", "Lait", "Pain") existe ou non dans une ligne particulière. L'ordre d'apparition dans une rangée n'a pas d'importance. Cependant, l’ensemble des éléments que je compte doivent tous apparaître. J'espère utiliser ce JSL comme modèle pour modifier et interroger l'occurrence d'ensembles d'éléments dans des tableaux contenant jusqu'à 10 000 lignes. À terme, j'aimerais dériver des statistiques telles que : 10 % des entrées contiennent "Thé" et "Bacon", 5 % ont "Thé", "Lait", "Yaourt", etc.
Existe-t-il une plateforme JMP capable de faire cela ?
Vous trouverez ci-joint un exemple d'ensemble de données.
Merci beaucoup!
Voici une option en utilisant des tableaux associatifs et leurs opérations d'ensemble
Names Default To Here(1);
dt = Open("$DOWNLOADS/items.jmp");
list_to_search_for = {"Tea", "Milk", "Bread"};
aa_mask = Associative Array(list_to_search_for);
dt << New Column("Match", Numeric, Continuous, << Set Each Value(
aa_row = Associative Array(dt[Row(), 0]);
temp_mask = aa_mask;
temp_mask << Remove(aa_row);
If(N Items(temp_mask) == 0,
1
,
0
);
));

JMP Plateforme d'études de consommation pourrait également être utile, mais je ne l'ai pas utilisé, donc je ne suis pas sûr qu'il puisse rechercher les combinaisons dont vous avez besoin (une association conditionnelle pourrait être utile ?)

Voici une formule qui placera un 1 dans la colonne des indicateurs si la combinaison Pain et Yaourt est trouvée dans une ligne donnée, et un 0 si elle n'est pas trouvée
dt = Current Data Table();
itemList = dt[Row(), Index( 1, 5 )];
If( Contains( itemList, "Bread" ) & Contains( itemList, "Yoghurt" ),
1,
0
);