Dans un bloc de données Filtrer la colonne en fonction d'une autre colonne contenant le nom de la colonneBonjour à tous,
J'ai joint un ensemble de données. Dans l'ensemble de données, j'ai une colonne appelée Parameter qui contient le nom des colonnes qui se trouvent dans l'ensemble de données. Je souhaite d'abord filtrer la colonne qui correspond à chaque nom de colonne unique présent dans la colonne Parameter, puis la joindre à la colonne de sous-ensemble que j'ai créée et créer un graphique de variabilité. En ce moment, j'ai 2 paramètres uniques dans la colonne Parameter et cela peut varier d'une semaine à l'autre, je voudrais donc qu'il soit paramétré. J'ai ci-dessous une partie du code que j'ai fait. Toute aide serait appréciée
Merci
Pio
dt_2 = Tableau de données( "jmp_question_T_V0" ) << Résumé(
Groupe( :Paramètre ),
Freq( "Aucun" ),
Poids (« Aucun »)
);
lst = colonne(dt_2,1) << GetAsMatrix();
fermer(dt_2,pas de sauvegarde);
subset_cols = {:Nom("PRA"), :Nom("WA"), :Nom("CH"), :Nom("WA_D"),
:Nom("CH_D"),:Nom("SL_T"),:Nom("TST_DATE"),:Nom("IL_M"),:Nom("QTY"),
:Nom("W"),:Nom("Paramètre"),:Nom("h_t_d")};
longueur (lst)
iparam = 1
tandis que(iparam=longueur(lst)) {
imprimer(lst[iparam])
dt=dt_1
dt_1 << select where (:Parameter == lst[iparam]) //fonctionne
dt<
dt<< sous-ensemble (toutes les lignes, colonnes (subset_cols))
dt_param<
Automatisation et scripts Exploration et visualisation des données
Ré: Dans un bloc de données, filtrer une colonne en fonction d'une autre colonne contenant le nom de la colonneLe script que vous avez fourni ne fonctionne pas car il manque ; et utilise une syntaxe incorrecte pour la boucle while. Si vous souhaitez obtenir des valeurs uniques à partir d'une colonne de caractères, vous pouvez utiliser la table récapitulative, la fonction Summarize ou le tableau associatif. Je ne sais pas exactement ce que vous souhaitez faire car vous n'avez fourni qu'un seul fichier .csv.
Names Default To Here(1);
dt = Current Data Table();
params = Associative Array(Column(dt, "Parameter")) << get keys;
Si vous souhaitez créer des sous-ensembles distincts basés sur la colonne Paramètre, vous pouvez simplement l'utiliser comme sous-ensemble par colonne

Names Default To Here(1);
dt = Current Data Table();
mycols = {"W", "W_s", "R_rd1", "R_rd1_s"};
dt_subsets = dt << Subset(By(:Parameter), Selected Rows(0), Columns(mycols));
Ou en boucle
Names Default To Here(1);
dt = Current Data Table();
params = Associative Array(Column(dt, "Parameter")) << get keys;
mycols = {"W", "W_s", "R_rd1", "R_rd1_s"};
dts = {};
For Each({param}, params,
cur_rows = dt << get rows where(:Parameter == param);
dt_subset = dt << Subset(Rows(cur_rows), Selected Rows(0), Columns(mycols));
Insert Into(dts, dt_subset);
);
Vous pouvez également sélectionner les lignes, mais cela n'est généralement pas nécessaire.
Ré: Dans un bloc de données, filtrer une colonne en fonction d'une autre colonne contenant le nom de la colonneSalut Jthi,
Merci pour votre réponse, mais ce que je veux, c'est ceci. Je veux dire, si le paramètre a S_rd2_iqr, alors je veux que seule la colonne S_rd2_iqr soit filtrée comme indiqué dans la capture d'écran. Si le paramètre a S_rd2, alors je veux que seule la colonne S_rd2 soit filtrée comme indiqué dans la capture d'écran. Ces paramètres varieront à chaque fois, je veux donc qu'ils soient paramétrés

Ré: Dans un bloc de données, filtrer une colonne en fonction d'une autre colonne contenant le nom de la colonneQuelque chose comme ça ?
Names Default To Here(1);
dt = Current Data Table();
params = Associative Array(Column(dt, "Parameter")) << get keys;
dts = {};
For Each({param}, params,
cols_to_subset = {"Parameter"};
Insert Into(cols_to_subset, param);
cur_rows = dt << get rows where(:Parameter == param);
dt_subset = dt << Subset(Rows(cur_rows), Selected Rows(0), Columns(cols_to_subset), Output Table("Parameter="||param));
Insert Into(dts, dt_subset);
);

Ré: Dans un bloc de données, filtrer une colonne en fonction d'une autre colonne contenant le nom de la colonneMerci Jarmo.
Je viens de commencer à écrire des scripts JMP et j'ai besoin d'un graphique de variabilité comme passé de la boucle for pour chaque table de données pour enregistrer l'image
dts={};
For Each({param}, params,
//cols_to_subset = {"Parameter"};
cols_to_subset = {:Name("PRODUCT"), :Name("WAFER_LOT"), :Name("CHUNK"), :Name("WAFER_ID"),
:Name("CHUNK_ID"),:Name("SLIDER_LOT"),:Name("TST_DATE"),:Name("WAFER_LOT"),:Name("FAIL_MODES"),:Name("DISPOSITION"),:Name("QTY_HGA"),
:Name("min_ET_date"),:Name("wafer_type"),:Name("wd_wafer_mfr_loc"),:Name("cq_or_child"),:Name("radius"),:Name("calc_sh_rd1"),
:Name("calc_sh_rd2"),:Name("CTQ_WRT_WDTH"),:Name("Parameter"),:Name("Product_waferID_Chunk_ID"),:Name("hga_tester_id")};
Insert Into(cols_to_subset, param);
//Insert Into(param,cols_to_subset);
cur_rows = dt_tester << get rows where(:Parameter == param);
dt_subset = dt_tester << Subset(Rows(cur_rows), Selected Rows(0), Columns(cols_to_subset) ,Output Table("Parameter="||param));
//Insert Into(dts, dt_subset);
//);
//this part not working
dt_subset << Variability Chart(
Y(__params__),
X( :WAFER_LOT, :CHUNK, :hga_tester_id ),
Sigma Multiplier( 6 ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Variability Analysis( Std Dev Chart( 0 ) ),
SendToReport(
Dispatch(
{__Variability Chart__},
"Variability Chart",
FrameBox,
{Row Legend(
hga_tester_id,
Color( 1 ),
Color Theme( "JMP Default"(1) ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)
);Ré: Dans un bloc de données, filtrer une colonne en fonction d'une autre colonne contenant le nom de la colonneMerci Jarmo.
Mais il faut tracer un graphique de variabilité dans le cadre de la boucle for pour enregistrer le graphique
params = Associative Array(Column(dt, "Parameter")) << get keys;
dts = {};
For Each({param}, params,
//cols_to_subset = {"Parameter"};
cols_to_subset = {:Name("PRA"), :Name("WA"), :Name("CH"), :Name("WA_D"),
:Name("CH_D"),:Name("SL_T"),:Name("TST_DATE"),:Name("IL_M"),:Name("QTY"),
:Name("W"),:Name("Parameter"),:Name("h_t_d")};
Insert Into(cols_to_subset, param);
cur_rows = dt << get rows where(:Parameter == param);
dt_subset = dt << Subset(Rows(cur_rows), Selected Rows(0), Columns(cols_to_subset), Output Table("Parameter="||param));
Insert Into(dts, dt_subset);
Variability Chart(
Y(__params__ ),
X( :WA, :CH, :h_t_d ),
Sigma Multiplier( 6 ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Variability Analysis(__params__, Std Dev Chart( 0 ) ),
SendToReport(
Dispatch(
{},
"Variability Chart",
FrameBox,
{Row Legend(
h_t_d,
Color( 1 ),
Color Theme( "JMP Default"(1) ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)
Pause()
);Ré: Dans un bloc de données, filtrer une colonne en fonction d'une autre colonne contenant le nom de la colonneLes graphiques de variabilité sont-ils les objectifs finaux que vous souhaitez atteindre ? Ou avez-vous également besoin des sous-ensembles pour autre chose (vous pouvez très probablement simplement créer ces graphiques de variabilité à partir de votre table d'origine avec un script sans créer les sous-ensembles) ?
Quelles colonnes doivent être utilisées comme Y et X pour les graphiques de variabilité ?