Comment exécuter le script pour chaque échantillon d'une liste s'il existe plusieurs entrées par échantillon dans la table de données.J'ai un tableau de données où les mêmes échantillons ont été mesurés plusieurs fois (voir l'exemple ci-dessous). Les échantillons sont séparés par leur identifiant.

Je veux que mon script puisse effectuer le même ensemble de calculs sur chaque échantillon afin que je puisse déterminer les limites de contrôle et créer une carte de contrôle pour A, B, C, etc. Je ne connais pas l'identifiant de chaque échantillon. J'ai déjà un script qui peut faire mes calculs et faire les graphiques pour moi, il ne peut tout simplement pas faire des calculs séparés pour chaque identifiant.
Ma première étape consistait à utiliser une sorte de boucle pour ce faire. J'ai un script qui renvoie chaque identifiant unique dans une liste et me donne le nombre d'identifiants uniques configurés pour la boucle.
Identifiers = Column( "Identifier") << GetAsMatrix();
Identifiers set = Associative Array( Identifiers);
Unique Identifiers = Identifiers set << Get Keys;
nUnique Identifiers = N Items (Unique Identifiers);
Je n'arrive pas à faire fonctionner une boucle. Y a-t-il une meilleure manière de faire cela? Ou quelqu'un pourrait-il me montrer comment faire la boucle?
J'utilise JMP 10.
Merci!
ScriptRe : Comment exécuter un script pour chaque échantillon d'une liste s'il y a plusieurs entrées par échantillon dans la table de données.Il existe de nombreuses façons de procéder, mais l'une consiste simplement à ajouter un filtre de données local à vos plates-formes existantes.Voici un exemple utilisant le générateur de graphes :
Names default to here(1);
//Open some sample data
dt = Open( "$Sample_data/big class.jmp" );
//Your code
Identifiers = Column( "age") << GetAsMatrix();
Identifiers set = Associative Array( Identifiers);
Unique Identifiers = Identifiers set << Get Keys;
nUnique Identifiers = N Items (Unique Identifiers);
//A window to hold a bunch of graphs
win = New Window("Graphs", graphbox = v list box());
//Open a graph that is filtered to only show each unique identifier
//to keep things organized add it to a single window.
for( i=1, i<=nUnique Identifiers, i++,
win << Append(<BR /> //To get this script I opened graph builder and added a local data filter for one age<BR /> //and then copied/pasted it here and replaced the age with 4Unique Identifiers[i]
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :age ),
Where( :age == Unique Identifiers[i] ),
Display( :age, N Items( 6 ) )
)
)
)
)
);Re : Comment exécuter un script pour chaque échantillon d'une liste s'il y a plusieurs entrées par échantillon dans la table de données.Je me demande si l'utilisation des plates-formes de cartes de contrôle intégrées pour calculer les limites et tracer les mesures fonctionnerait, en particulier si vous affectez Identificateur au rôle d'analyse Par.
Je ne veux tout simplement pas que vous passiez beaucoup de temps à écrire des scripts si cela duplique les fonctionnalités déjà disponibles.
Re : Comment exécuter un script pour chaque échantillon d'une liste s'il existe plusieurs entrées par échantillon dans la table de données.Comment pourrais-je faire des calculs supplémentaires filtrés par l'identifiant ? Je veux faire quelques manipulations de données, puis calculer mes propres limites en fonction des données par identifiant qui seraient ensuite ajoutées à chacun des graphiques, donc je pense que tout type de filtre devrait venir avant le script de graphique final. J'ai un script qui peut faire ça et je peux le poster si besoin, mais c'est assez long. Je cherche vraiment un moyen de créer le script que j'ai déjà exécuté pour chaque identifiant plutôt que pour toutes les lignes de la table de données