Beispiele (TMS-Befehl BEGIN)
TMS BEGIN
/DESTINATION OUTFILE='/mydir/mytransformations.xml'.
COMPUTE modelvar=ln(var).
TMS END.
TMS BEGINmarkiert den Anfang eines Blocks von Transformationsbefehlen, die für den Export in PMML ausgewertet werden.- Die Variable var wird mit einer Log-Funktion transformiert, um die Variable modelvarzu erstellen, die in einem Modell verwendet werden soll. Die Details dieser Umsetzung werden als PMML in die Datei /mydir/mytransformations.xmlaufgenommen.
TMS ENDmarkiert das Ende des Blocks und bewirkt, dass die Ausgabedatei geschrieben wird, hat aber keine Auswirkung auf den Zustand der im Block enthaltenen Transformationen. Im vorliegenden Beispiel steht die Umsetzung zum Erstellen von modelvar nach Abschluss des Blocks noch an.
Tolerierte Befehle in einem TMS-Block
TMS BEGIN
/DESTINATION OUTFILE='/mydir/mytransformations.xml'.
STRING new_strvar (A1).
RECODE strvar ('A','B','C'='A') ('D','E','F'='B') (ELSE=' ')
INTO new_strvar.
TMS END.
- Mit dem Befehl
STRINGwird eine neue Zeichenfolgevariable erstellt, die das Ziel einer Umcodierungstransformation einer vorhandenen Zeichenfolgevariablen sein soll.STRINGist ein tolerierter Befehl, sodass er auf normale Weise ausgeführt wird, ohne einen Fehler zu generieren oder denTMS-Block implizit zu beenden.
Befehle, die ein implizites TMS END verursachen
TMS BEGIN
/DESTINATION OUTFILE='/mydir/mytransformations.xml'.
RECODE numvar1 (0=1) (1=0) (ELSE=SYSMIS) INTO new_numvar1.
FREQUENCIES new_numvar1.
RECODE numvar2 (1 THRU 5=1)(6 THRU 10=2)(11 THRU HI=3)(ELSE=0)
INTO new_numvar2.
TMS END.
- Der Befehl
FREQUENCIESbewirkt ein implizites Ende desTMS-Blocks, wodurch die PMML-Ausgabedatei geschrieben wird. Die Ausgabedatei enthält nur die Umcodierungstransformation für numvar1, d. h. die Transformationen vor dem Befehl, der die impliziteTMS ENDverursacht. - Obwohl der Befehl
FREQUENCIESden Block implizit beendet, wird die Umcodierungstransformation für numvar2 normal verarbeitet und bleibt bis zum nächsten Befehl, der das aktive Dataset liest, anstehend. - Obwohl er in diesem Beispiel enthalten ist, ist der Befehl
TMS ENDnicht erforderlich, wenn ein Befehl vorhanden ist, der den BlockTMSimplizit beendet. In diesem Beispiel generiert die Ausführung des BefehlsTMS ENDeine Warnung, die darauf hinweist, dass kein aktueller BefehlTMSwirksam ist.
EXECUTE in einem TMS-Block verwenden
TMS BEGIN
/DESTINATION OUTFILE='/mydir/mytransformations.xml'.
RECODE numvar1 (0=1) (1=0) (ELSE=SYSMIS) INTO new_numvar1.
RECODE numvar2 (1 THRU 5=1)(6 THRU 10=2)(11 THRU HI=3)(ELSE=0)
INTO new_numvar2.
EXECUTE.
- Sie können
EXECUTEin einenTMS-Block einschließen. In der üblichen Weise werden alle anstehenden Transformationen ausgeführt. Darüber hinaus führt dies zu einem impliziten Ende des Blocks, wodurch die PMML-Ausgabedatei geschrieben wird. - Im aktuellen Beispiel wurde der
TMS END-Befehl übergangen, da der Block implizit durch den BefehlEXECUTEbeendet wird.