Verwenden Sie die for-Schleife im Variabilitätsdiagramm für mehrere SpaltenHallo,
Ich habe mehrere Spalten in einem Datensatz und wollte diese mithilfe eines Skripts in einem Variabilitätsdiagramm darstellen, damit ich diese Diagramme mit ähnlichen Einstellungen erstellen kann. Aber es liegt ein Fehler vor. Kann jemand aufklären, was die richtige Syntax sein sollte?
mein Skript:
dt = currentdatatable();
colnames = dt << Spaltennamen abrufen (numerisch);
show(colnames);
nw = Neues Fenster("Plots");
for(i=5, i test = colnames[i];
gb = Variabilitätsdiagramm(
Y( als Spalte(Test) ) ,
X( :Gruppe, :Lot, :Wafer ),
Max. Iter( 100 ),
Konv.-Limit (0,00000001),
Abszissen der Zahlenintegration (128),
Zahlenfunktionsauswertungen( 65536 ),
Analysetyp( Name( „Beste Analyse auswählen (EMS REML Bayesian)“) ),
Standard-Entwicklungsdiagramm( 0 ),
Boxplots anzeigen(1),
)
);
nw<
Protokollmeldung:
colnames = {Lot, Wafer, LT-VL_MN_11,1 0 -LT-VL_MNT_11.1X11.1-VALUE_F"), Name("4V01PC04MHVP_BF00-LT-VL_HP_0.4X1.1-VALUE_F"), Name("4V01PC04MHVP_BF00-LT-VL_HP_11.1X1.1-VALUE_F"), Name(" 4V01PC04MHVP_BF00-LT-VL_HP_11.1X11.1-VALUE_F"), Name("4V01PC04MHVP_BF00-LT-VL_MP_11.1X1.1-VALUE_F"), Name("4V01PC04MHVP_BF00-LT-VL_MP_11.1X11.1-VALUE_F"), Name( "4V01PC06TX5V_BF00-LT-VL_N5_11.1X11.1-VALUE_F"), Name("4V01PC06TX5V_BF00-LT-VL_P5_11.1X11.1-VALUE_F"), EndTimestamp};
Beim Zugriff oder bei der Auswertung von „Variabilitätsdiagramm“ nicht gefunden, schlechtes Argument ({., Rolle erfordert mindestens 1 Spalte.} ), Variabilitätsdiagramm(/*###*/Y( As Column( test ) ),
X( :Gruppe, :Lot, :Wafer ),
Max. Iter( 100 ),
Konv.-Limit (0,00000001),
Abszissen der Zahlenintegration (128),
Zahlenfunktionsauswertungen( 65536 ),
Analysetyp( Name( „Beste Analyse auswählen (EMS REML Bayesian)“) ),
Standard-Entwicklungsdiagramm( 0 ),
Boxplots anzeigen( 1 )
)
Im folgenden Skript ist der Fehler mit /*###*/ markiert.
dt = Aktuelle Datentabelle();
colnames = dt << Spaltennamen abrufen (numerisch);
Show( Spaltennamen );
nw = Neues Fenster( "Plots" );
For( i = 5, i < N Items( colnames ), i++,
test = colnames[i];
gb = Variabilitätsdiagramm(/*###*/Y( As Column( test ) ),
X( :Gruppe, :Lot, :Wafer ),
Max. Iter( 100 ),
Konv.-Limit (0,00000001),
Abszissen der Zahlenintegration (128),
Zahlenfunktionsauswertungen( 65536 ),
Analysetyp( Name( „Beste Analyse auswählen (EMS REML Bayesian)“) ),
Standard-Entwicklungsdiagramm( 0 ),
Boxplots anzeigen( 1 )
);
);
nw << append( Report( gb ) );
Betreff: For-Schleife im Variabilitätsdiagramm für mehrere Spalten verwendenHallo, vielen Dank für die Änderungen. Es hat so funktioniert, wie ich es wollte.
Betreff: For-Schleife im Variabilitätsdiagramm für mehrere Spalten verwendenHallo,
danke für die Tipps. Aber Tipp Nr. 1 ist nicht anwendbar, da ich eigentlich mit 5 beginnen wollte.
Betreff: For-Schleife im Variabilitätsdiagramm für mehrere Spalten verwendenEs gibt ein paar Dinge, die den Fehler verursachen. Einer davon ist, dass Sie in Ihrer For()-Schleife i = 5 initialisieren, obwohl ich davon ausgehe, dass Sie mit dem ersten Element in der in colnames gespeicherten Liste beginnen möchten, also sollte es i = 1 sein. Die zweite Sache ist, dass Sie As Column() nicht verwenden müssen – Sie können einfach den Variablennamen (test) verwenden, der den Spaltennamen bei jeder Iteration speichert, Y(test).
Außerdem hängen Sie das Variabilitätsdiagramm außerhalb der For()-Schleife an, was bedeutet, dass nur das letzte Diagramm zum Fenster hinzugefügt wird. Sie möchten die letzte Zeile Ihres Codes innerhalb der Schleife haben. Hoffe das hilft!
Betreff: For-Schleife im Variabilitätsdiagramm für mehrere Spalten verwendenIch habe Ihren Code geändert und denke, er wird so funktionieren, wie Sie es möchten.
1. Ich habe Ihrem „Neuen Fenster“ eine V-Listenbox() hinzugefügt. Dadurch haben Sie eine bessere Kontrolle über die Reihenfolge der gewünschten Ausgabe. Wenn Sie möchten, dass die Anzeigen von links nach rechts verlaufen, wechseln Sie zu einer H List Box().
2. Ich habe das Element „Unsichtbar“ zum Variabilitätsdiagramm hinzugefügt. Ich gehe davon aus, dass Sie am Ende ein einzelnes Fenster ohne separate Fenster für jedes Diagramm haben möchten.
3. Die As Column() würde nicht funktionieren. Ich bin mir nicht sicher, warum nicht! Der Wechsel zu einer Column()-Funktion hat jedoch funktioniert. Außerdem habe ich die Notwendigkeit der Variable „Test“ eliminiert, da es sauberer ist, nur die Listenreferenz ColNames[] direkt im Code des Variabilitätsdiagramms zu haben.
4. Ich gehe davon aus, dass Sie ein einzelnes Fenster mit der gesamten Ausgabe wünschen. Ihr Anhang am Ende Ihres Codes würde nur das letzte Diagramm anhängen. Der Verweis auf „gb“ ist nicht additiv. „gb“ wird jedes Mal, wenn in der For()-Schleife darauf verwiesen wird, in jedes nachfolgende Diagramm geändert. Daher muss sich das Anhängen innerhalb der Schleife befinden.
dt = Current Data Table();
colnames = dt << get column names( numeric );
Show( colnames );
nw = New Window( "Plots", myVLB = V List Box() );
For( i = 5, i < N Items( colnames ), i++,
gb = Variability Chart(
invisible,
Y( Column( colnames[i] ) ),
X( :Group, :Lot, :Wafer ),
Max Iter( 100 ),
Conv Limit( 0.00000001 ),
Number Integration Abscissas( 128 ),
Number Function Evals( 65536 ),
Analysis Type( Name( "Choose best analysis (EMS REML Bayesian)" ) ),
Std Dev Chart( 0 ),
Show Box Plots( 1 ),
);
myVLB << append( Report( gb ) );
);