<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo, ich hoffe auf Hilfe beim JSL-Scripting, wenn in einer Datentabelle Daten fehlen.
Wir verwenden JSL, um eine Abfrage gegen eine Datenbank auszuführen, die Daten in eine Datentabelle zieht, die wie folgt aussieht:
Teller | Verbindung | M1 | M2 | M3 | M4 |
A121 | cmp001 | 85.203 | 30.022 | 36,797 | 0,0629 |
A122 | cmp002 | 84.031 | 34.902 | 31.596 | 0,063 |
A123 | cmp003 | 89.028 | 30.677 | 34.903 | 0,063 |
A124 | cmp004 | 91.2455 | 35.277 | 35.327 | 0,0631 |
A125 | cmp005 | 91.257 | 36.927 | 38.836 | 0,063 |
wobei M alle verschiedene Messungen sind. Wir haben ein JSL-Skript, das aus den Daten mehrere Darstellungen erstellt und auch ein passendes Modell von
Fit Modell (
Y (: M1,: M2,: M3,: M4),
Effekte (: Platte,: Verbindung,: Platte *: Verbindung),
Persönlichkeit (Standard-Kleinstquadrate),
Betonung (Effect Leverage),
Lauf(
: M1 << {Mangel an Anpassung (0), Plot Actual durch Predicted (1),
Plotregression (0), Plotreste nach vorhergesagtem (1),
Plot-Effekt-Hebel (1), Show VIF (1), {: Strain <<
{LSMeans Tukey HSD (0.05, Kreuztabellenbericht (0))}}},
: M2 << {Mangel an Anpassung (0), Plot Actual von Predicted (1),
Plotregression (0), Plotreste nach vorhergesagtem (1),
Plot-Effekt-Hebel (1), Show VIF (1), {: Strain <<
{LSMeans Tukey HSD (0.05, Kreuztabellenbericht (0))}}},
: M3 << {Mangel an Anpassung (0), Plot Actual von Predicted (1),
Plotregression (0), Plotreste nach vorhergesagtem (1),
Plot-Effekt-Hebel (1), Show VIF (1), {: Strain <<
{LSMeans Tukey HSD (0.05, Kreuztabellenbericht (0))}}},
: M4 << {Mangel an Anpassung (0), Plot Actual von Predicted (1),
Plotregression (0), Plotreste nach vorhergesagtem (1),
Plot-Effekt-Hebel (1), Show VIF (1), {: Strain <<
{LSMeans Tukey HSD (0.05, Kreuztabellenbericht (0))}}},
)
)
Wo wir in Schwierigkeiten geraten, ist, dass wir gelegentlich ein fehlerhaftes Messsystem haben und die gesamte M3- oder M4-Spalte mit fehlenden Werten gefüllt ist (count = 0). In diesem Fall stürzt das Fit Model das JSLscript ab.
Was ist der beste Weg, um ein Fit Model gegen eine Datentabelle zu skriften, wo gelegentlich eine Spalte keine Daten enthält? Gibt es eine einfache Möglichkeit, zunächst nachzuschauen, welche Spalten Daten enthalten, und diese dann als Liste an die Plattform Fit Model zu übergeben? Ich habe nicht wirklich Lust, eine Menge IF-Anweisungen zu schreiben, um zu prüfen, welche Spalten voll und leer sind, und dann ein anderes Fit-Model-Skript auszuführen, da wir tatsächlich über 10 verschiedene Messungen haben und eine davon möglicherweise fehlt jeden Tag
Danke für Ihre Hilfe.
Zumindest in JMP 9 akzeptiert Fit Model () ein Listenargument. Eval () muss verwendet werden, wenn die Liste eine Variable ist.
Hier ein Beispiel, wie eine Liste mit nicht leeren Spalten erstellt wird (prüft nicht, ob sie voll ist, aber leicht hinzugefügt werden kann):
Ys = { : M1 . : M2 . : M3 . : M4 } ;
Zum ( ich = N Artikel ( Ys ) . ich > 0 . ich -,
Zusammenfassen ( n = Anzahl ( Ys [ ich ] ) ) ;
Ob ( n == 0 .
Entfernen von ( Ys . ich )
) ;
) ;
Modell anpassen (
Y ( Eval ( Ys ) ) .
Auswirkungen ( ...