EXAMPLES (TMS BEGIN 命令)

TMS BEGIN
 /DESTINATION OUTFILE='/mydir/mytransformations.xml'.
COMPUTE modelvar=ln(var).
TMS END.
  • TMS BEGIN 标记将评估以导出到 PMML 的变换命令块的开始。
  • 使用 log 函数变换变量 var 以创建要在模型中使用的变量 modelvar。 此变换的详细信息将作为 PMML 包含在文件 /mydir/mytransformations.xml中。
  • TMS END 标记块的结尾并导致写入输出文件,但对块中包含的变换的状态没有影响。 在本示例中,用于创建 modelvar 的变换在块完成后仍处于暂挂状态。

TMS 块中的容许命令

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.
  • STRING 命令用于创建新的字符串变量,该变量将作为现有字符串变量的重新编码变换的目标。 STRING 是一个容许的命令,因此它以正常方式执行,而不会生成错误或隐式结束 TMS 块。

导致隐式 TMS END 的命令

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.
  • FREQUENCIES 命令导致隐式结束 TMS 块,从而导致写入输出 PMML 文件。 输出文件仅包含 numvar1的重新编码变换 -- 即,导致隐式 TMS END的命令之前的变换。
  • 虽然 FREQUENCIES 命令隐式结束块,但 numvar2 的重新编码变换将以正常方式处理,并保持暂挂状态,直到读取活动数据集的下一个命令为止。
  • 虽然我们已将其包含在此示例中,但当存在隐式结束 TMS 块的命令时,不需要 TMS END 命令。 在此示例中,执行 TMS END 命令将生成一条警告,指示当前 TMS 命令没有生效。

在 TMS 块中使用 EXECUTE

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.
  • 您可以在 TMS 块中包含 EXECUTE 。 通常,它将导致执行所有暂挂的变换。 此外,它会导致块的隐式结束,这将导致写入输出 PMML 文件。
  • 在当前示例中,我们省略了 TMS END 命令,因为该块由 EXECUTE 命令隐式结束。