J'essaie de créer un objet Class contenant des méthodes et des propriétés que je trouve utiles lorsque je travaille avec des rapports de distribution.
Tout fonctionne comme je le souhaite lorsque je n'essaie pas de filtrer le rapport ou le tableau de données, mais lorsque j'essaie d'adapter le rapport, je commence à avoir des problèmes.
Le problème principal est qu'après avoir filtré le rapport lorsque j'entre dans l'arborescence d'affichage pour extraire et enregistrer des valeurs, elles ne reflètent pas le filtre.Par exemple, si la colonne que j'analyse a une moyenne de 132 avant le filtrage et une moyenne de 134 après le filtrage, le rapport de distribution affichera 134 pour la moyenne, mais l'arbre d'affichage affichera 132.
Make Distribution = Method({filter={}},
Try(
Column(dt,col) << Set Name("Data");
show(NItems(filter)!=0);
If(
NItems(filter)!=0,
dist = dt << Distribution(
Automatic Recalc( 1 ),
Continuous Distribution( Column( :Data ),
Local Data Filter(
Add Filter(Where(:Data >= filter[0] & :Data<= filter[1]))
)
),
),
dist = dt << Distribution(Automatic Recalc(1),Continuous Distribution(Column(:Data)));
);
rdist = dist << Report;
show(rdist[1]);
tmp = rdist["Summary Statistics"][NumberColBox(1)] << Get As Matrix;
mean = tmp[1];
stdev = tmp[2];
std_err_mean = tmp[3];
up_95_mean = tmp[4];
low_95_mean = tmp[5];
N = tmp[6];
dist_graph = rdist[OutlineBox("Data")][PictureBox(1)];
Column(dt,"Data") << Set Name(col);
,
Throw("Error in Making Distribution: "||char(exception_msg))
);
);Ci-dessus, la méthode dans laquelle je crée le rapport de distribution, ajoute le filtre local et extrait les valeurs des statistiques récapitulatives de l'arborescence d'affichage.
J'ai également essayé d'utiliser une routine Select Where et Delete Rows, mais Select Where ne fait rien lorsque la méthode se trouve ci-dessous.
Filter Table = Method({filter},
dt << Select Where(Column(dt,col)<FILTER>filter[2]);
dt << Delete Rows;
);</FILTER>Je fais cela car j'ai assez souvent besoin d'obtenir diverses statistiques ou éléments récapitulatifs des rapports de distribution, ce qui en fait une syntaxe facile et facile à modifier.
J'ai joint la classe complète à ce post.
Toute aide serait appréciée.
Salut,
Je réponds car j'ai constaté un comportement similaire dans JMP 13.Lorsque j'avais un filtre de données attaché, je pouvais obtenir et définir des valeurs sur une colonne et effectuer des tris de table et des manipulations de résumé de table, mais j'obtenais des résultats aléatoires avec la sélection de lignes. Mon travail consistait à obtenir les valeurs de colonne sous forme de vecteurs (l'analyse appelait des colonnes numériques) et à utiliser les fonctions loc(). Ensuite, j'ai fait mes calculs et mis à jour les valeurs du tableau en conséquence.
L'assistance JMP a été informée. Je les signalerai pour qu'ils consultent ce billet de blog car le comportement que vous avez décrit semble être le même.
Aucun effet malheureusement.
@awsmagala ,
Je conseillerais d'introduire un petit délai d'attente entre la construction de la table de données après l'application de la plateforme.
Wait(0.1);