In un data frame Filtra la colonna in base a un'altra colonna che contiene il nome della colonnaCiao a tutti,
Ho allegato un set di dati. Nel set di dati, ho una colonna chiamata Parametro che contiene il nome delle colonne presenti nel set di dati. Voglio prima filtrare la colonna che corrisponde a ogni nome di colonna univoco presente nella colonna Parametro e poi unirla alla colonna del sottoinsieme che ho creato e creare un grafico di variabilità. In questo momento ho 2 parametri univoci nella colonna Parametro e questo può variare di settimana in settimana, quindi vorrei che fosse parametrizzato. Di seguito ho parte del codice che ho fatto. Qualsiasi aiuto sarebbe apprezzato
Grazie
Pio
dt_2 = Tabella dati( "jmp_question_T_V0" ) << Riepilogo(
Gruppo( :Parametro ),
Freq( "Nessuno" ),
Peso( "Nessuno" )
);
lst = colonna(dt_2,1) << OttieniComeMatrice();
close(dt_2, nessun salvataggio);
subset_cols = {:Nome("PRA"), :Nome("WA"), :Nome("CH"), :Nome("WA_D"),
:Nome("CH_D"),:Nome("SL_T"),:Nome("TST_DATE"),:Nome("IL_M"),:Nome("QTY"),
:Nome("W"),:Nome("Parametro"),:Nome("h_t_d")};
lunghezza (lst)
iparam = 1
while(iparam=lunghezza(lst)) {
stampa(lst[iparam])
dt=dt_1
dt_1 << seleziona dove (:Parametro == lst[iparam]) //funziona
dt<
dt<< subset(tutte le righe, colonne(subset_cols))
dt_parametro<
Automazione e scripting Esplorazione e visualizzazione dei dati
Re: In un data frame Filtrare la colonna in base a un'altra colonna che contiene il nome della colonnaLo script che hai fornito non funziona perché manca ; e usa una sintassi errata per il ciclo while. Se vuoi ottenere valori univoci da una colonna di caratteri, puoi usare la tabella di riepilogo, la funzione di riepilogo o l'array associativo. Non sono sicuro di cosa desideri fare esattamente perché hai fornito solo un singolo file .csv.
Names Default To Here(1);
dt = Current Data Table();
params = Associative Array(Column(dt, "Parameter")) << get keys;
Se desideri creare sottoinsiemi separati in base alla colonna Parametro, puoi semplicemente utilizzarla come sottoinsieme per colonna

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));
Oppure in loop
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);
);
Potresti anche selezionare le righe, ma di solito non è necessario
Re: In un data frame Filtrare la colonna in base a un'altra colonna che contiene il nome della colonnaCiao Jthi,
Grazie per la risposta, ma quello che voglio è questo. Voglio dire, se il parametro ha S_rd2_iqr, allora voglio che solo la colonna S_rd2_iqr venga filtrata come mostrato nello screenshot. Se il parametro ha S_rd2, allora voglio che solo la colonna S_rd2 venga filtrata come mostrato nello screenshot. Questi parametri variano ogni volta, quindi voglio che siano parametrizzati

Re: In un data frame Filtrare la colonna in base a un'altra colonna che contiene il nome della colonnaQualcosa del genere?
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);
);

Re: In un data frame Filtrare la colonna in base a un'altra colonna che contiene il nome della colonnaGrazie Jarmo.
Ho appena iniziato a scrivere script jmp e ho bisogno di un grafico di variabilità come parte del ciclo for per ogni tabella dati per salvare l'immagine
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 )
)}
)
)
)
);Re: In un data frame Filtrare la colonna in base a un'altra colonna che contiene il nome della colonnaGrazie Jarmo.
Ma è necessario tracciare il grafico della variabilità come parte del ciclo for per salvare il grafico
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()
);Re: In un data frame Filtrare la colonna in base a un'altra colonna che contiene il nome della colonnaI grafici di variabilità sono gli obiettivi finali che desideri avere? O hai bisogno dei sottoinsiemi anche per qualcos'altro (probabilmente puoi semplicemente creare quei grafici di variabilità dalla tua tabella originale con un po' di scripting senza creare i sottoinsiemi)?
Quali colonne dovrebbero essere utilizzate come Y e X per i grafici di variabilità?