<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich versuche, Folgendes mit einem JMP-Skript auszuführen:
- Passen Sie Weibull-Verteilungen an zwei verschiedene kontinuierliche Datenspalten (TBI und TTR) in einer Tabelle (dt1) an, DURCH alle verschiedenen Kombinationen zweier kategorialer Spalten in derselben Tabelle (STNFAM und VIEW_STATE_ID).
- Extrahieren Sie die Alpha- und Beta-Parameter für alle resultierenden Verteilungen und schreiben Sie sie in eine Tabelle. Sogar das Drucken im Protokoll in einem analysierbaren Format würde funktionieren
Hier ist der aktuelle Prototyp für das Skript, das lediglich die Verteilungsparameter für den ersten im Bericht generierten Knoten abrufen soll:
******************************************Start des Skripts
DT1 = currentDataTable();
dist = DT1 <<
Verteilung(
Von( :STNFAM, :VIEW_STATE_ID ),
Kontinuierliche Verteilung(
Spalte( :TBI_HRS ),
Fit-Verteilung (Weibull mit Schwellenwert)
),
Kontinuierliche Verteilung(
Spalte( :TTR_HRS ),
Fit-Verteilung (Weibull mit Schwellenwert)
)
);
//Testen, um zu sehen, ob dist eine legitime Plattform ist, die später im Skript manipuliert werden kann
Eigenschaften anzeigen(dist);
reportDist = dist<
//Testen, um zu sehen, ob „reportDist“ ein legitimer Bericht ist, der später im Skript manipuliert werden kann
Eigenschaften anzeigen(reportDist);
//Testen, um zu sehen, ob ich Alpha- und Beta-Parameter nur aus dem ersten Knoten in reportDist extrahieren kann
alphaParam = reportDist[Outline Box(1)][Table Box(3)][Number Col Box(1)] << Get(1);
betaParam = reportDist[Outline Box(1)][Table Box(3)][Number Col Box(1)] << Get(2);
//Drucken der extrahierten Parameter in das Protokoll, um zu sehen, ob sie mit den gewünschten Werten übereinstimmen
print(alphaParam);
print(betaParam);
************************************************** ***************************Ende des Skripts
Dieses Skript funktioniert wie erwartet, wenn dt1 nur eine Kombination aus STNFAM und VIEW_STATE_ID enthält. Die Eigenschaften von „dist“ und „reportDist“ werden im Protokoll angezeigt und die Weibull-Parameter werden bei Bedarf auch im Protokoll gedruckt. Wenn jedoch mehr als eine Kombination aus STNFM und VIEW_STATE_ID in dt1 vorhanden ist, erhalte ich die folgende Fehlermeldung und im Protokoll werden keine Plattform- oder Berichtseigenschaften angezeigt:
************************************************** **************************Anfang des Protokolls
/*:
//:*/
DT1 = currentDataTable();
dist = DT1 <<
Verteilung(
Von( :STNFAM, :VIEW_STATE_ID ),
Kontinuierliche Verteilung(
Spalte( :TBI_HRS ),
Fit-Verteilung (Weibull mit Schwellenwert)
),
Kontinuierliche Verteilung(
Spalte( :TTR_HRS ),
Fit-Verteilung (Weibull mit Schwellenwert)
)
);
//Testen, um zu sehen, ob dist eine legitime Plattform ist, die später im Skript manipuliert werden kann
Eigenschaften anzeigen(dist);
reportDist = dist<
//Testen, um zu sehen, ob „reportDist“ ein legitimer Bericht ist, der später im Skript manipuliert werden kann
Eigenschaften anzeigen(reportDist);
//Testen, um zu sehen, ob ich Alpha- und Beta-Parameter nur aus dem ersten Knoten in reportDist extrahieren kann
alphaParam = reportDist[Outline Box(1)][Table Box(3)][Number Col Box(1)] << Get(1);
betaParam = reportDist[Outline Box(1)][Table Box(3)][Number Col Box(1)] << Get(2);
//Drucken der extrahierten Parameter in das Protokoll, um zu sehen, ob sie mit den gewünschten Werten übereinstimmen
print(alphaParam);
print(betaParam);
/*:
erwartetes Zeichen arg 1 beim Zugriff oder bei der Auswertung von „Outline Box“, Outline Box( 1) Subscript-Problem beim Zugriff oder bei der Auswertung von „Subscript“, reportDist[Outline Box( 1)]
Im folgenden Skript ist der Fehler mit /*###*/ markiert.
DT1 = Aktuelle Datentabelle();
dist = DT1 << Verteilung(
Von( :STNFAM, :VIEW_STATE_ID ),
Kontinuierliche Verteilung(
Spalte( :TBI_HRS ),
Fit-Verteilung (Weibull mit Schwellenwert)
),
Kontinuierliche Verteilung(
Spalte( :TTR_HRS ),
Fit-Verteilung (Weibull mit Schwellenwert)
)
);
Eigenschaften anzeigen( dist );
reportDist = dist << report;
Eigenschaften anzeigen( reportDist );
alphaParam = reportDist[/*###*/Outline Box/*###*/(1)][Table Box( 3 )][
Number Col Box( 1 )] << Get( 1 );
betaParam = reportDist[Outline Box( 1 )][Table Box( 3 )][Number Col Box( 1 )] <<
Get( 2 );
Print( alphaParam );
Print( betaParam );
************************************************** ******************************************Ende des Protokolls
JMP scheint „dist“ und „reportDist“ nicht als legitime Plattform zu erkennen und zu melden, wenn im ersten Abschnitt des Codes mehr als eine Kombination durch die BY-Argumente generiert wird. Kann mir jemand den richtigen Weg weisen, um das gewünschte Ergebnis zu erzielen?
Anhänge:
- Subset_Weibull_Fit_Script.jsl (das in der Nachricht oben gezeigte Skript)
- 1_Combo_Subset von XSITE_Weibull_Fit_All_STNFAM_1-10-14.jmp (die Testtabelle, auf der das Skript wie erwartet funktioniert)
- 2_Combo_Subset von XSITE_Weibull_Fit_All_STNFAM_1-10-14.jmp (die Testtabelle, auf der das Skript nicht wie erwartet funktioniert)
Danke schön,