In einem Datenrahmen Filtern Sie die Spalte basierend auf einer anderen Spalte, die den Spaltennamen enthältHallo Leute,
Ich habe einen Datensatz angehängt. Im Datensatz habe ich eine Spalte namens „Parameter“, die die Namen der Spalten enthält, die im Datensatz enthalten sind. Ich möchte zuerst die Spalte filtern, die jedem eindeutigen Spaltennamen entspricht, der in der Spalte „Parameter“ vorhanden ist, und sie dann mit der von mir erstellten Teilmengenspalte verknüpfen und ein Variabilitätsdiagramm erstellen. Im Moment habe ich 2 eindeutige Parameter in der Spalte „Parameter“, und diese können von Woche zu Woche variieren, daher möchte ich sie parametrisieren. Unten habe ich einen Teil des Codes, den ich erstellt habe. Für jede Hilfe wäre ich dankbar.
Danke
Pio
dt_2 = Datentabelle( "jmp_question_T_V0" ) << Zusammenfassung(
Gruppe( :Parameter ),
Freq( "Keine" ),
Gewicht( "Keine" )
);
lst = Spalte(dt_2,1) << GetAsMatrix();
schließen(dt_2,nicht speichern);
Teilmengenspalten = {:Name("PRA"), :Name("WA"), :Name("CH"), :Name("WA_D"),
:Name("CH_D"),:Name("SL_T"),:Name("TST_DATE"),:Name("IL_M"),:Name("MENGE"),
:Name("W"),:Name("Parameter"),:Name("h_t_d")};
Länge (lst)
iparam = 1
während(iparam=Länge(lst)) {
drucken(lst[iparam])
dt = dt_1
dt_1 << select where (:Parameter == lst[iparam]) //funktioniert
dt<
dt<< Teilmenge(alle Zeilen, Spalten(Teilmenge_Spalten))
dt_param<
Automatisierung und Skripting Datenexploration und -visualisierung
Betreff: In einem Datenrahmen eine Spalte basierend auf einer anderen Spalte filtern, die den Spaltennamen enthältDas von Ihnen bereitgestellte Skript funktioniert nicht, da es fehlt und eine falsche Syntax für die While-Schleife verwendet. Wenn Sie eindeutige Werte aus einer Zeichenspalte abrufen möchten, können Sie die Übersichtstabelle, die Zusammenfassungsfunktion oder das assoziative Array verwenden. Ich bin mir nicht ganz sicher, was Sie tun möchten, da Sie nur eine einzige CSV-Datei bereitgestellt haben.
Names Default To Here(1);
dt = Current Data Table();
params = Associative Array(Column(dt, "Parameter")) << get keys;
Wenn Sie separate Teilmengen basierend auf der Parameterspalte erstellen möchten, können Sie diese einfach als Teilmenge pro Spalte verwenden

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));
Oder Schleifen
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);
);
Sie können auch die Zeilen auswählen, aber das ist normalerweise nicht notwendig
Betreff: In einem Datenrahmen eine Spalte basierend auf einer anderen Spalte filtern, die den Spaltennamen enthältHallo Jthi,
Danke für Ihre Antwort, aber was ich will, ist Folgendes. Ich meine, wenn der Parameter S_rd2_iqr hat, dann möchte ich, dass nur die Spalte S_rd2_iqr gefiltert wird, wie im Screenshot gezeigt. Wenn der Parameter S_rd2 hat, dann möchte ich, dass nur die Spalte S_rd2 gefiltert wird, wie im Screenshot gezeigt. Diese Parameter variieren jedes Mal, also möchte ich, dass sie parametrisiert werden

Betreff: In einem Datenrahmen eine Spalte basierend auf einer anderen Spalte filtern, die den Spaltennamen enthältSo etwas?
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);
);

Betreff: In einem Datenrahmen eine Spalte basierend auf einer anderen Spalte filtern, die den Spaltennamen enthältDanke, Jarmo.
Ich beginne gerade mit dem JMP-Scripting und brauche ein Variabilitätsdiagramm als Abschluss der For-Schleife für jede Datentabelle, um das Bild zu speichern
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 )
)}
)
)
)
);Betreff: In einem Datenrahmen eine Spalte basierend auf einer anderen Spalte filtern, die den Spaltennamen enthältDanke, Jarmo.
Es ist jedoch erforderlich, das Variabilitätsdiagramm als Teil der For-Schleife zu zeichnen, um das Diagramm zu speichern
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()
);Betreff: In einem Datenrahmen eine Spalte basierend auf einer anderen Spalte filtern, die den Spaltennamen enthältSind die Variabilitätsdiagramme das Endziel, das Sie erreichen möchten? Oder benötigen Sie die Teilmengen auch für etwas anderes (Sie können diese Variabilitätsdiagramme höchstwahrscheinlich einfach mit einigen Skripten aus Ihrer Originaltabelle erstellen, ohne die Teilmengen erstellen zu müssen)?
Welche Spalten sollen als Y und X für die Variabilitätsdiagramme verwendet werden?