Beispiele (TMS-Befehl BEGIN)

TMS BEGIN
 /DESTINATION OUTFILE='/mydir/mytransformations.xml'.
COMPUTE modelvar=ln(var).
TMS END.
  • TMS BEGIN markiert 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 END markiert 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 STRING wird eine neue Zeichenfolgevariable erstellt, die das Ziel einer Umcodierungstransformation einer vorhandenen Zeichenfolgevariablen sein soll. STRING ist ein tolerierter Befehl, sodass er auf normale Weise ausgeführt wird, ohne einen Fehler zu generieren oder den TMS -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 FREQUENCIES bewirkt ein implizites Ende des TMS -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 implizite TMS ENDverursacht.
  • Obwohl der Befehl FREQUENCIES den 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 END nicht erforderlich, wenn ein Befehl vorhanden ist, der den Block TMS implizit beendet. In diesem Beispiel generiert die Ausführung des Befehls TMS END eine Warnung, die darauf hinweist, dass kein aktueller Befehl TMS wirksam 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 EXECUTE in einen TMS -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 Befehl EXECUTE beendet wird.