Guía de referencia del comando de creación de datos y TML Versión 7.1 © 2016 Pitney Bowes Software Inc. Todos los derechos reservados. Este documento puede incluir información confidencial y exclusiva de propiedad de Pitney Bowes Inc. y/o sus subsidiarias y compañías asociadas. Portrait Software, el logotipo de Portrait Software, Portrait y la marca Portrait de Portrait Software son las marcas comerciales de Portrait Software International Limited y se prohíbe su uso o explotación de cualquier forma sin previa autorización escrita expresa de Portrait Software International Limited. Reconocimiento de marcas comerciales Otros nombres de productos, nombres de compañías, marcas, logotipos y símbolos a los que se hace referencia en la presente pueden ser marcas comerciales o marcas comerciales registradas de sus propietarios registrados. Soporte técnico de Portrait Software Si necesita ayuda con algún tema no abordado en esta documentación, consulte la Base de conocimientos de nuestro sitio web http://support.portraitsoftware.com y siga los enlaces que llevan al producto. También puede descargar otra documentación de Portrait Software desde el sitio. Si no tiene nombre de usuario ni contraseña, o no los recuerda, comuníquese con nosotros a través de uno de los canales mencionados a continuación. Si encuentra un problema en el uso, la instalación o la documentación de este producto, comuníquese con nosotros a través de cualquiera de los siguientes métodos: Correo electrónico:[email protected] Teléfono • EE. UU./Canadá 1-800-335-3860 (línea gratuita) • Resto del mundo +44 800 840 0001 Cuando notifique un problema, nos resultará útil la siguiente información: • • • • El nombre de la aplicación de software. Las circunstancias en las que surgió el problema. Los mensajes de error que recibió (si hubiera). La versión del software que utiliza. Pitney Bowes Software Inc. February 23, 2016 Contenidos Capítulo 1: Introducción...........................................................................................13 Descripción general de Portrait Miner............................................................................14 Quién debe leer este manual............................................................................................14 Capítulo 2: Comandos de creación de datos de Portrait Miner............................15 Acerca de los comandos de creación de datos de Portrait Miner................................16 Opciones estándar de la línea de comandos.................................................................21 La opción de línea de comandos -force..........................................................................24 La opción de línea de comandos -macro........................................................................25 Capítulo 3: Administrar el comando de creación de datos Portrait Miner..........27 qsbuild................................................................................................................................28 Capítulo 4: Comandos para importar y exportar datos.........................................31 qsdbaccess........................................................................................................................32 qsimportdb.........................................................................................................................33 qsdbcreatetable.................................................................................................................35 qsdbinsert..........................................................................................................................37 qsdbupdate........................................................................................................................38 qsgenfdd............................................................................................................................40 qsimportflat........................................................................................................................42 qsexportflat........................................................................................................................44 qsimportstat.......................................................................................................................48 qsexportstat.......................................................................................................................50 qsimportfocus....................................................................................................................52 Cómo Portrait Miner importa los tipos de base de datos..............................................54 Importación a Portrait Miner desde una base de datos.................................................54 Exportación de Portrait Miner a una base de datos.......................................................55 Formatos de fecha.............................................................................................................55 Formatos de fecha estándar..........................................................................................56 Formatos de fechas personalizados..............................................................................56 Capítulo 5: Comandos para procesar enfoques....................................................61 qssort..................................................................................................................................62 qsderive..............................................................................................................................63 qsmeasure..........................................................................................................................66 qstrack................................................................................................................................70 qsselect..............................................................................................................................73 qsrenamefields..................................................................................................................75 qsexportmetadata..............................................................................................................78 qsimportmetadata.............................................................................................................78 qsupdate.............................................................................................................................82 Capítulo 6: Comandos para combinar enfoques...................................................85 Acerca de la combinación de enfoques..........................................................................86 qsjoin..................................................................................................................................86 qsmerge..............................................................................................................................90 Capítulo 7: Comandos para administrar enfoques................................................93 qscopy................................................................................................................................94 qslink..................................................................................................................................95 qsmove...............................................................................................................................95 qsremove............................................................................................................................96 qsarchive............................................................................................................................97 qsunzip...............................................................................................................................98 Capítulo 8: Comandos para elaborar informes....................................................101 qssettings.........................................................................................................................102 qsaudit..............................................................................................................................102 qsdescribe........................................................................................................................106 qsdescribestat.................................................................................................................107 qshtmlunpack..................................................................................................................108 qsdtsnapshot, qsscsnapshot.........................................................................................109 qsxt...................................................................................................................................112 qsinfo................................................................................................................................113 4 Portrait Miner 7.1 qsdescribelicense...........................................................................................................114 Capítulo 9: Comandos para construir modelos...................................................117 Acerca del Asistente de scorecard................................................................................118 qsscorecardwizard..........................................................................................................119 qsdecisiontree.................................................................................................................125 qsscorecard.....................................................................................................................126 Acerca del Asistente para reglas de asociación..........................................................128 qsruleminer......................................................................................................................129 Capítulo 10: Comandos para trabajar con archivos QMML................................133 qsqmmlview.....................................................................................................................134 qsqmmledit......................................................................................................................134 qslt....................................................................................................................................137 qsqmml2sas.....................................................................................................................139 qsqmml2sql......................................................................................................................139 qsqsfmtosas....................................................................................................................140 Capítulo 11: Otros comandos................................................................................141 qsmapgen.........................................................................................................................142 Capítulo 12: Lenguaje de medición de transacciones........................................147 Acerca de Transaction Measurement Language..........................................................148 Sintaxis de TML...............................................................................................................148 Palabras reservadas en TML..........................................................................................149 Capítulo 13: Instrucciones TML.............................................................................151 Definición de campos: la instrucción create................................................................152 Uso de funciones de agregación y las cláusulas where y default.............................154 División de agregaciones: la cláusula by.....................................................................156 Evaluación del enfoque de estadísticas: la instrucción de calcular..........................158 Capítulo 14: Funciones de agregación.................................................................161 Funciones de agregación para mediciones y derivaciones........................................162 any....................................................................................................................................165 confintlower.....................................................................................................................165 Guía de referencia del comando de creación de datos y TML 5 confintupper.....................................................................................................................166 count.................................................................................................................................167 countnonnull/countnonnulls..........................................................................................167 countnull/countnulls.......................................................................................................168 countunique.....................................................................................................................169 countuniquenonnull........................................................................................................169 first....................................................................................................................................170 last....................................................................................................................................171 max (un argumento)........................................................................................................171 mean (un argumento)......................................................................................................172 median..............................................................................................................................173 min (un argumento).........................................................................................................173 mode.................................................................................................................................174 moderatio.........................................................................................................................175 percentage.......................................................................................................................175 percentagerate.................................................................................................................176 segindex...........................................................................................................................177 significance......................................................................................................................177 stdev.................................................................................................................................178 sum (un argumento)........................................................................................................179 variance............................................................................................................................179 Capítulo 15: Lenguaje de derivación de campos.................................................181 Acerca del lenguaje de derivación de campos (FDL)..................................................182 Capítulo 16: Sintaxis FDL.......................................................................................183 Tipos de datos.................................................................................................................184 El valor null...................................................................................................................184 Datos booleanos..........................................................................................................185 Compatibilidad de tipos................................................................................................185 Conversión de tipos.....................................................................................................186 Expressions (Expresiones)............................................................................................186 Expresiones básicas....................................................................................................186 Expresiones condicionales............................................................................................187 La expresión if..............................................................................................................188 La expresión case........................................................................................................189 Variables...........................................................................................................................190 Variables globales en Decision Studio.........................................................................191 6 Portrait Miner 7.1 Variables state en Transaction Measurement Language.............................................191 Funciones definidas por el usuario...............................................................................192 Atributos de funciones.................................................................................................194 Operadores aritméticos..................................................................................................195 Operadores relacionales.................................................................................................196 Operadores lógicos.........................................................................................................198 Prioridad de operadores.................................................................................................199 Funciones incorporadas.................................................................................................199 Palabras reservadas en FDL..........................................................................................206 Capítulo 17: Funciones condicionales..................................................................207 clamp................................................................................................................................208 cond..................................................................................................................................208 iff.......................................................................................................................................209 ifnull, nvl...........................................................................................................................210 isnull.................................................................................................................................211 isselected.........................................................................................................................212 replace..............................................................................................................................212 Capítulo 18: Funciones de conversión de tipo de datos.....................................215 todate................................................................................................................................216 tointeger...........................................................................................................................217 toreal.................................................................................................................................217 tostring.............................................................................................................................218 Capítulo 19: Funciones para trabajar con fechas................................................221 addcenturies, addcenturiescountbackwards...............................................................223 adddays............................................................................................................................224 addhours..........................................................................................................................224 addminutes......................................................................................................................225 addmonths, addmonthscountbackwards.....................................................................226 addseconds......................................................................................................................228 addweeks.........................................................................................................................229 addyears, addyearscountbackwards............................................................................230 countcenturies.................................................................................................................231 countdays.........................................................................................................................231 counthours.......................................................................................................................232 Guía de referencia del comando de creación de datos y TML 7 countminutes...................................................................................................................233 countseconds..................................................................................................................234 countweeks......................................................................................................................235 countwholecenturies, countwholecenturiesbackwards..............................................236 countwholedays..............................................................................................................237 countwholehours.............................................................................................................238 countwholeminutes.........................................................................................................238 countwholemonths, countwholemonthsbackwards....................................................239 countwholeseconds........................................................................................................241 countwholeweeks............................................................................................................242 countwholeyears, countwholeyearsbackwards...........................................................243 countyears.......................................................................................................................244 day....................................................................................................................................245 dayofweek........................................................................................................................245 gmt2edt.............................................................................................................................246 hour...................................................................................................................................246 minute...............................................................................................................................247 month................................................................................................................................248 now...................................................................................................................................248 second..............................................................................................................................249 today.................................................................................................................................249 weekofyear.......................................................................................................................250 year...................................................................................................................................251 Capítulo 20: Funciones para trabajar con cadenas.............................................253 concat...............................................................................................................................254 endswith...........................................................................................................................254 find....................................................................................................................................255 left.....................................................................................................................................256 mid....................................................................................................................................257 right...................................................................................................................................258 soundex............................................................................................................................259 startswith..........................................................................................................................260 strlen.................................................................................................................................261 strmember........................................................................................................................261 substitute.........................................................................................................................262 substr................................................................................................................................263 tolower..............................................................................................................................264 8 Portrait Miner 7.1 toupper.............................................................................................................................265 trim....................................................................................................................................265 Capítulo 21: Expresiones regulares y sus funciones asociadas.......................267 Expresiones regulares....................................................................................................268 Componentes básicos de una expresión regular........................................................268 Referencias inversas...................................................................................................270 Operadores de las expresiones regulares....................................................................270 Operadores de repetición............................................................................................270 El operador de concatenación.....................................................................................271 El operador de alternancia...........................................................................................271 match................................................................................................................................272 replaceall..........................................................................................................................273 replacefirst.......................................................................................................................274 Capítulo 22: Funciones matemáticas y estadísticas...........................................277 abs....................................................................................................................................278 ceil.....................................................................................................................................278 cos....................................................................................................................................279 exp....................................................................................................................................279 floor...................................................................................................................................280 log.....................................................................................................................................280 log10.................................................................................................................................281 logbase.............................................................................................................................281 max (dos o más argumentos), maxnonnull..................................................................282 mean (dos o más argumentos), meannonnull..............................................................283 min (dos o más argumentos), minnonnull....................................................................283 normalize..........................................................................................................................284 pow...................................................................................................................................285 product, productnonnull.................................................................................................285 round................................................................................................................................286 sgn....................................................................................................................................287 sin.....................................................................................................................................287 sqrt....................................................................................................................................288 sum (dos o más argumentos), sumnonnull..................................................................288 tan.....................................................................................................................................289 Guía de referencia del comando de creación de datos y TML 9 Capítulo 23: Funciones de muestreo de datos....................................................291 numericTestTrainSplit.....................................................................................................292 numericTestTrainValidateSplit.......................................................................................292 sampleEqualSize.............................................................................................................293 sampleExactNumber.......................................................................................................294 sampleExactPercentage.................................................................................................295 sampleStratified...............................................................................................................296 testTrainSplit....................................................................................................................297 testTrainValidateSplit......................................................................................................297 Capítulo 24: Funciones de números aleatorios...................................................299 Sobre las funciones de números aleatorios en FDL....................................................300 rndBinomial......................................................................................................................300 rndBool.............................................................................................................................301 rndExp..............................................................................................................................301 rndGamma........................................................................................................................302 rndNormal........................................................................................................................302 rndPoisson.......................................................................................................................303 rndUniform.......................................................................................................................304 Capítulo 25: Funciones de rentabilidad de la inversión......................................305 ActionROI.........................................................................................................................306 ActionROIAnnualized......................................................................................................307 OfferROI............................................................................................................................308 OfferROIAnnualized........................................................................................................309 RetentionActionROI........................................................................................................310 RetentionActionROIAnnualized.....................................................................................311 RetentionOfferROI...........................................................................................................313 RetentionOfferROIAnnualized........................................................................................314 Capítulo 26: Funciones diversas...........................................................................317 dblookup..........................................................................................................................318 member.............................................................................................................................319 rankOrder, rankOrderApprox.........................................................................................321 rankOrderMean, rankOrderApproxMean.......................................................................322 rownum.............................................................................................................................323 10 Portrait Miner 7.1 Capítulo 27: Rangos...............................................................................................325 bin.....................................................................................................................................326 Boolean............................................................................................................................327 DayFrom, WeekFrom, MonthFrom, YearFrom..............................................................328 DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom........328 DayMultipleNumBins,WeekMultipleNumBins,MonthMultipleNumBins,YearMultipleNumBins.329 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost.330 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo...........................331 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth....332 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost............................................333 DayRange, WeekRange, MonthRange, YearRange......................................................334 DayTo, WeekTo, MonthTo, YearTo..................................................................................335 EqualRange......................................................................................................................336 EqualRangeWidth............................................................................................................337 NegativeNonNegative......................................................................................................337 PreDuringPost.................................................................................................................338 PrePost.............................................................................................................................339 Sign...................................................................................................................................340 Capítulo 28: XML en Portrait Miner.......................................................................341 XML en Portrait Miner.....................................................................................................342 Especificación de metadatos para qsimportmetadata................................................342 metadata......................................................................................................................342 focus.............................................................................................................................343 field en metadatos........................................................................................................343 fdl.................................................................................................................................344 comment......................................................................................................................345 history...........................................................................................................................346 recordselection.............................................................................................................346 numeric........................................................................................................................347 date..............................................................................................................................347 categorical....................................................................................................................348 range............................................................................................................................349 select............................................................................................................................349 Especificación de agregación para qsmeasure...........................................................349 aggregations................................................................................................................349 field en agregados........................................................................................................350 Guía de referencia del comando de creación de datos y TML 11 Especificación de derivación para qsderive.................................................................351 derivations....................................................................................................................351 field en derivaciones....................................................................................................351 Especificación de selección para qsselect...................................................................352 selections.....................................................................................................................352 field en selecciones......................................................................................................352 Especificación de tabulación cruzada para qsxt.........................................................353 crosstabset...................................................................................................................353 crosstab........................................................................................................................354 specification en la tabulación cruzada.........................................................................354 function.........................................................................................................................355 field en la tabulación cruzada......................................................................................355 Especificación de mapeo del nombre de campo para qsrenamefields.....................356 mappingset...................................................................................................................356 map..............................................................................................................................356 Especificación del árbol de decisión para qsdecisiontree.........................................357 decisiontree..................................................................................................................357 specification en el árbol de decisión............................................................................357 splitconstraints.............................................................................................................358 testtrain........................................................................................................................359 Especificación de creación de un cuadro de mando para qsscorecard....................359 scorecard.....................................................................................................................359 specification en cuadro de mando...............................................................................360 Especificaciones de creación de rangos......................................................................361 binning..........................................................................................................................361 numeric........................................................................................................................362 date..............................................................................................................................363 categorical....................................................................................................................364 categories.....................................................................................................................365 category.......................................................................................................................365 selectn..........................................................................................................................366 geographic...................................................................................................................366 minendparam...............................................................................................................366 maxendparam..............................................................................................................367 boundaries...................................................................................................................367 boundary......................................................................................................................367 valores de atributo..........................................................................................................368 12 Portrait Miner 7.1 Capítulo Introducción En esta sección: • Descripción general de Portrait Miner . . . . . . . . . . . . . . .14 • Quién debe leer este manual . . . . . . . . . . . . . . . . . . . . . . .14 1 Descripción general de Portrait Miner Descripción general de Portrait Miner Portrait Miner es una poderosa solución de análisis predictivo que permite que tanto los profesionales dedicados a la percepción del cliente como los usuarios comerciales puedan formar una imagen clara de sus clientes para comprenderlos mejor, descubrir áreas de oportunidades, alcanzar una mayor segmentación y predecir comportamientos futuros. Portrait Customer Analytics es una solución incomparable de próxima generación, diseñada para facilitar el uso y obtener rápidas visiones ejecutables. Esta solución reduce la brecha entre las herramientas estándar de inteligencia empresarial que poseen un alcance limitado para explorar información y las soluciones de procesamiento de datos numéricos para las cuales los programadores estadísticos deben crear consultas y modelos. Esta solución utiliza una poderosa visualización de la información en 3D y una rápida automatización de modelos para revelar importantes conexiones entre los datos y calcular tendencias con solo pulsar un botón, lo cual incrementa la precisión del modelo predictivo y aumenta la velocidad de los resultados analíticos. Portrait Miner se puede utilizar para prever comportamientos y tendencias que puedan afectar las ganancias, como la fuga de clientes, las oportunidades de ventas cruzadas y ventas mejoradas, el planeamiento y la segmentación de campañas, la satisfacción y lealtad del cliente y el valor del ciclo de vida del cliente. Quién debe leer este manual El manual está dirigido a los usuarios de Portrait Miner que estén habituados a utilizar la línea de comandos y que deseen crear o modificar la creación de datos. Algunas secciones — en especial, el capítulo que describe los comandos disponibles para administrar enfoques — también pueden ser de interés para los administradores de Portrait Miner. Este documento fue creado a modo de referencia y no es un tutorial. 14 Portrait Miner 7.1 Capítulo Comandos de creación de datos de Portrait Miner En esta sección: • Acerca de los comandos de creación de datos de Portrait Miner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 • Opciones estándar de la línea de comandos . . . . . . . . . .21 • La opción de línea de comandos -force . . . . . . . . . . . . . .24 • La opción de línea de comandos -macro . . . . . . . . . . . . .25 2 Acerca de los comandos de creación de datos de Portrait Miner Acerca de los comandos de creación de datos de Portrait Miner Los comandos de creación de datos de Portrait Miner brindan funciones clave sobre la creación, administración e informes de datos de Portrait Miner, desde la línea de comandos. Si bien puede ingresar comandos individuales para realizar tareas one-off, la verdadera ventaja de utilizar los comandos de creación de datos consiste en que puede combinarlos de manera similar a las secuencias de comandos de shell en UNIX y a los archivos por lotes de Windows en el caso de creaciones de datos más complejas. Para administrar la creación de datos que contienen varios pasos interdependientes, también puede utilizar la herramienta Data Build Manager de Portrait Miner o su equivalente en línea de comandos, qsbuild. Con un plan de creación que exprese la secuencia necesaria de pasos, se ahorra tiempo y se minimizan los errores humanos. Si ejecuta un proceso normal de creación o implementación de datos y lo deja funcionando solo, durante la noche quizás, y algo falla (por ejemplo, se acaba el espacio en el disco), seguramente querrá solucionar el problema y continuar desde el punto en que se presentó la interrupción y no comenzar todo el proceso nuevamente. Del mismo modo, si las operaciones necesarias para las creaciones subsiguientes se superponen en cierta medida, convendría ahorrar tiempo de procesamiento realizando dichas operaciones solamente una vez. Con el Data Build Manager o qsbuildserá más fácil rastrear las dependencias entre las operaciones y recordar cuáles son las operaciones que ya se han realizado. Cada comando de creación de datos requiere ciertos argumentos en la línea de comandos y podría aceptar argumentos opcionales, específicos según el comando, además de las opciones estándar [consultar Opciones estándar de la línea de comandos en la página 21]. En la sección que describe cada comando hay una sinopsis del comando, que utiliza una anotación sintáctica especial: • Los elementos que se encuentran entre paréntesis angulares no son literales. Por ejemplo, donde dice "<enfoque de origen>," debe ingresar el nombre del archivo de un enfoque preexistente. • Los elementos que se encuentran entre corchetes son opcionales. Por ejemplo, donde dice "[-overwrite]," puede ingresar "-overwrite" o dejarlo en blanco. • Los elementos separados por barras verticales son alternativas: debe seleccionar solamente una de las opciones. Por ejemplo, donde dice "XML | HTML | Full," puede escribir "XML," "HTML," o "Full." • Un elemento seguido de una elipsis puede repetirse según sea necesario. Por ejemplo, donde dice <campo> [, <campo> ...], puede escribir Income (ignorando el elemento opcional), Income,Gender, Income,Gender,Age, etc. • Las llaves {...} a veces se utilizan para delinear elementos no opcionales. (Lo que cuenta como un elemento a los fines de alternación y repetición se extiende hasta la barra vertical, corchete o llave más próxima.) Por ejemplo, donde dice -input <enfoque de origen> {,-input <enfoque de origen> ...}, puede escribir -input one.ftr -input two.ftr o -input one.ftr -input two.ftr -input three.ftr pero no simplemente -input one.ftr. Hay comandos de creación de datos para importarlos y exportarlos, para procesar, unir y administrar datos en enfoques y para informar sobre enfoques y modelos. Comandos para importar y exportar datos 16 Portrait Miner 7.1 Capítulo 2: Comandos de creación de datos de Portrait Miner Comando Objetivo qsdbaccess Crear, probar o eliminar una conexión de base de datos del usuario, para acceder a una base de datos. qsimportdb Importar datos de una tabla de una base de datos o del resultado de una búsqueda en la base de datos. qsdbcreatetable Crear una tabla vacía en una base de datos según los campos de un enfoque. qsdbinsert Insertar registros de un enfoque en la tabla de una base de datos. qsdbupdate Actualizar los registros preexistentes en la tabla de una base de datos, con datos de un enfoque. qsgenfdd Crear un archivo de descripción de texto plano para los datos en un archivo de texto. qsimportflat Importar datos de un archivo plano. qsexportflat Exportar datos a un archivo plano. qsimportstat Importar datos de un archivo SAS u otro conjunto de datos de terceros. qsexportstat Exportar datos a un archivo SAS u otro conjunto de datos de terceros. qsimportfocus Importar datos (sin metadatos) de un enfoque existente. Comandos para procesar enfoques Comando Objetivo qssort Clasificar los registros en un enfoque. qsderive Derivar los campos en un enfoque. qsmeasure Agregar registros en un enfoque para producir un nuevo enfoque. qstrack Derivar los campos en un enfoque con derivaciones de rastreo de estado. qsselect Agregar una selección de registro a un enfoque. qsrenamefields Cambiar el nombre de los campos de un enfoque. qsexportmetadata Exportar metadatos desde un enfoque. qsimportmetadata Importar metadata desde un archivo a un enfoque. qsupdate Copiar metadatos de un enfoque a otro. Guía de referencia del comando de creación de datos y TML 17 Acerca de los comandos de creación de datos de Portrait Miner Comandos para combinar enfoques Comando Objetivo qsjoin Unir campos de uno o más enfoques secundarios en un enfoque primario, haciendo coincidir los registros con campos clave. qsmerge Combinar los registros de enfoques similares para crear un nuevo enfoque y mantener los registros clasificados por campo clave. Comandos para administrar enfoques Comando Objetivo qscopy Copiar un enfoque para crear uno nuevo e independiente. qslink Copiar un enfoque compartiendo los datos subyacentes. qsmove Mover o cambiar el nombre de un enfoque. qsremove Eliminar los enfoques. qsarchive Crear un archivo de archivo s a partir de enfoques o carpetas. qsunzip Extraer de un archivo de archivos. Comandos para elaborar informes 18 Comando Objetivo qssettings Establecer opciones comunes de formato para distintos informes. qsaudit Generar un Perfil y Auditoría de un enfoque. qsdescribe Mostrar información resumida sobre un enfoque. qsdescribestat Mostrar información resumida sobre un archivo SAS u otro conjunto de datos de terceros. qshtmlunpack Descomprimir un archivo HTML o XML generado por qsaudit, qsdtsnapshot, o qsscsnapshot. qsdtsnapshot Generar una foto modelo de un árbol de decisión. qsscsnapshot Generar una foto modelo de un cuadro de mando. qsxt Aplicar una especificación de tabulación cruzada a un enfoque para producir una nueva tabulación cruzada. Portrait Miner 7.1 Capítulo 2: Comandos de creación de datos de Portrait Miner Comando Objetivo qsinfo Mostrar información de los archivos que constituyen un enfoque y su relación con otros enfoques. qsdescribelicense Mostrar información sobre una licencia de Portrait Miner. Comandos para construir modelos Comando Objetivo qsdecisiontree Aplicar una especificación de árbol de decisiones a un enfoque para producir un informe del nuevo modelo de árbol de decisión. qsscorecard Aplicar una especificación de un cuadro de mando a un enfoque para producir un informe del nuevo modelo de cuadro de mando. qsscorecardwizard Crear un cuadro de mando en un enfoque específico utilizando un archivo de parámetros. Comandos para trabajar con archivos QMML Comando Objetivo qsqmmlview Mostrar el contenido de un archivo de reglas QMML. qsqmmledit Modificar un archivo de reglas QMML. qslt Transformar un archivo FDL, QMML o XML genérico en un formato distinto. qsqmml2sas Convertir un archivo QMML en un archivo SAS. qsqmml2sql Convertir un archivo QMML en un archivo SQL. qsqsfmtosas Convertir las derivaciones de un archivo de metadatos en un archivo SAS. Otros comandos Comando Objetivo qsbuild Ejecutar un plan de creación. qsmapgen Crear un conjunto de mapas de Decision Studio a partir de la creación de rangos de uno o más archivos divididos por categorías jerárquicas. Guía de referencia del comando de creación de datos y TML 19 Acerca de los comandos de creación de datos de Portrait Miner Dado el potencial de interdependencia de los enfoques, no debe intentar copiar, mover, cambiar el nombre o eliminar los enfoques con utilidades estándares del sistema operativo. En cambio, siempre debe utilizar los comandos enumerados anteriormente (o el Portrait Miner para administrar los enfoques. Generalmente, los comandos de creación de datos que generan archivos sobrescriben cualquier archivo preexistente con el mismo nombre. Tenga precaución de no sobrescribir enfoques que dependan de otros o que tengan enfoques a su cargo, ya que podría inutilizar esos otros enfoques. Nota: • Para utilizar los comandos de creación de datos, debe tener acceso de línea de comandos a Portrait Miner. Consulte la Guía de administración de Portrait Miner para obtener información acerca de la configuración de la ruta de comandos para utilizar comandos de creación de datos (o pídaselo al administrador de Portrait Miner). • Los shells de comandos por lo general requieren que los argumentos de la línea de comandos que contienen ciertos caracteres estén entre comillas, en especial los espacios y la puntuación especial (como comillas simples y dobles, "<," ">," "*," "=," y "#"). Algunas opciones llevan argumentos que son listas de valores separados por comas, por ejemplo, la opción -fields en varios comandos. Ese tipo de listas es en realidad un único argumento de línea de comandos, así es que deberá escribirla entre comillas o bien deberá asegurarse de que no haya espacios luego de las comas (ni en ningún otro lugar de la lista). • Cuando utiliza la opción -verbose o -logfile [consultar Opciones estándar de la línea de comandos en la página 21], el resultado del comando de creación de datos (en pantalla o en el archivo de registro, según la opción que se utilice) incluye una línea similar a la siguiente: 11:55:21: {P1/4/4Hm4096Pd2047Pi63Pw27Jm64Um-1Fs991Fh1784Fc0Fp0} La críptica cadena de caracteres codifica información sobre los recursos de la memoria y el procesador que utiliza el comando; si tiene problemas de rendimiento con los comandos de creación de datos, esta información puede ayudar para que el soporte técnico de Portrait Miner resuelva su problema. • Los comandos de creación de datos qssort, qsjoin y qsmerge muestran o registran los mensajes con datos específicos cuando utiliza la opción -verbose o -logfile . Así podrá comprender más fácilmente de qué manera ha actuado el comando sobre sus datos. • El estado de salida que devuelve cada comando es cero si lo hace correctamente, o un valor distinto de cero si falla. Cuando un comando falla, siempre genera un mensaje de error con el siguiente formato: *** Error: <message> Los mensajes de error aparecen en errores estándar y también en los archivos de registro si se utiliza la opción -logfile [consultar Opciones estándar de la línea de comandos en la página 21]. Los comandos además pueden generar mensajes de advertencia con el siguiente formato: *** Warning: <message> 20 Portrait Miner 7.1 Capítulo 2: Comandos de creación de datos de Portrait Miner Los mensajes de advertencia aparecen en los errores estándar o bien en los archivos de registro (pero no en ambos). • Si un comando falla porque el enfoque es de sólo lectura, con qslink o qscopy copie el enfoque de sólo lectura en una nueva ubicación y ejecute el comando nuevamente. • Cuando se crean UDC se utiliza el comando qsdbaccess con el argumento -add. Dado que le solicita información, no corresponde utilizar esta forma del comando en una secuencia de shell o archivo por lote. • De manera predeterminada, los comandos de creación de datos que leen enfoques utilizan el subenfoque predeterminado, si existe, y de no ser así, utilizan el enfoque superior ("raíz"). Puede anular este comportamiento para un comando determinado utilizando la opción común -subfocus. • Muchos de los comandos de creación de datos utilizan las opciones -field , -xfield , -tag y -xtag para especificar listas de campos. Los campos se pueden especificar con combinaciones de -field y -xfield o -tag y -xtag pero las opciones de campo y las opciones de etiqueta no pueden utilizarse combinadas. Opciones estándar de la línea de comandos Opciones independientes: Utilice una de las siguientes opciones en lugar de los argumentos normales de los comandos de creación de datos: Opción Efecto -help Muestra texto en uso, incluso un resumen de todas las opciones válidas de la línea de comandos que sean distintas de las opciones estándar. -helpall Muestra el texto en uso incluso un resumen de todas las opciones válidas de la línea de comandos. -version Muestra la versión de Portrait Miner y la información de la licencia asociada. Otras opciones comunes a todos los comandos Opción Efecto -config <archivo de preferencias> Utilice el archivo de preferencias especificado (consultar Administración de Portrait Miner). Las configuraciones de este archivo anulan aquellas presentes en los archivos de preferencias estándar del sistema y específicos según el usuario. Guía de referencia del comando de creación de datos y TML 21 Opciones estándar de la línea de comandos Opción Efecto -email Una vez completado el comando, envíe un mensaje de correo electrónico al destinatario especificado en las preferencias de Correo electrónico emailaddress (consulte la Guía de Administración de Portrait Miner). El mensaje de correo electrónico incluye un resumen de estado en formato HTML, como el que genera la opción-statusfile . -logfile <archivo de registro> En el archivo especificado, escriba información detallada del avance con los tiempos de funcionamiento y demás información específica según el comando acerca de la ejecución, inclusive todos los mensajes de error o advertencia y sobrescriba todo archivo preexistente con ese nombre. Continúe mostrando los mensajes de error en salida estándar. Esta opción implica la opción -verbose . -memory <número de megabytes> Usar como máximo la cantidad de memoria especificada. El comando intentará mantenerse dentro del límite de ser posible, pero nunca lo excederá. En los casos en que un comando requiere más memoria que la cantidad máxima, se produce un error. Esta opción anula la configuración de la preferencia límite blando de la memoria del enfoque (consulte la Guía de Administración de Portrait Miner). -parallel <número de procesadores> Utiliza la cantidad especificada de procesadores (si están disponibles) para las operaciones que pueden utilizar más de un procesador. Esta opción anula la configuración de la preferencia Paralelismo (consulte la Guía de Administración de Portrait Miner). -progress Muestra información simple sobre el avance, como una línea de caracteres . y + . -settings <archivo de configuraciones> Utiliza la configuración del archivo especificado para controlar el formato numérico y de fechas en un informe generado. Esta opción tiene efecto solamente en los comandos de generación de informes, es decir qsaudit, qsdtsnapshot y qsscsnapshot. En el directorio de configuración específica según el usuario de una PC con cliente Portrait Miner, 22 Portrait Miner 7.1 Capítulo 2: Comandos de creación de datos de Portrait Miner Opción Efecto Decision Studio crea un archivo llamado settings.xml cuando realiza cambios sobre las configuraciones con Editar->Ver Preferencias. Puede copiar este archivo al servidor para utilizarlo con la opción -settings. O puede crear un archivo de configuraciones en el servidor utilizando el comando qssettings. De manera predeterminada, el formato de la fecha es europeo, la cantidad de posiciones decimales es 2, los ceros posteriores no se quitan, no se utilizan separadores locales de miles y el formato de la hora es de 24 horas. -statusfile <archivo de estado> Produce un resumen de comandos y de estado con formato HTML en el archivo de estado. Si utiliza la opción -email, el mensaje de correo electrónico sobre el estado incluye un resumen similar. -verbose Muestra información detallada sobre el avance completo, con tiempos de funcionamiento y demás información específica según el comando acerca de la ejecución. Esta opción anula la opción -progress. Nota: • Si especifica el uso de más de un procesador, con la opción -parallel o con la preferencia correspondiente, la memoria disponible, especificada usando la opción -memory o la preferencia correspondiente, se comparte entre los procesadores. • La información específica según el comando acerca de la ejecución puede incluir, por ejemplo: la cantidad de registros de entrada, salida o coincidencia; información sobre conversiones de base de datos y tipo de datos; o códigos de diagnóstico interesantes para el Soporte técnico de Portrait Miner . Ejemplos Mostrar el texto de ayuda de qsremove: qsremove -help Dado el archivo de preferencias audit.ini que contiene lo siguiente: [Audits and Snapshots] imageheight = 200 barcolor = #FF0000 Utilice estas preferencias para crear un perfil y auditoría con imágenes de 200 píxeles de altura y barras rojas: qsaudit -config audit.ini -input RetailCustApril.ftr Guía de referencia del comando de creación de datos y TML 23 La opción de línea de comandos -force Utilice 512 megabytes de memoria para crear un nuevo enfoque RetailTransAprilSorted.ftr clasificando el enfoque RetailTransApril.ftr: qssort -memory 512 -output RetailTransAprilSorted.ftr -input RetailTransApril.ftr -keys CustomerID Utilice cuatro procesadores (y la configuración predeterminada de memoria) para crear un nuevo enfoque RetailTransMaySorted.ftr clasificando el enfoque RetailTransMay.ftr: qssort -parallel 4 -output RetailTransMaySorted.ftr -input RetailTransMay.ftr -keys CustomerID La opción de línea de comandos -force Esta opción se aplica a los comandos que crean enfoques, a saber: qscopy, qsderive, qsimportdb, qsimportflat, qsimportfocus, qsimportmetadata, qsimportstat, qsjoin, qslink, qsmeasure, qsmerge, qsrenamefields, qsselect, qssort, qstrack, qsupdate, qsscorecard y qsdecisiontree. Opción Efecto -force Permitir un nuevo enfoque especificado utilizando la opción -output o -to para sobrescribir un enfoque existente. Sin la opción -force, si el enfoque especificado por -output o -to ya existe, el comando no hace nada (excepto emitir una advertencia). Nota: • La opción -force solo se debe utilizar cuando sea absolutamente necesario, y se debe asegurar de que ya no requiere ni el enfoque que está sobrescribiendo ni ningún otro enfoque que esté enlazado a este [consulte qsinfo en la página 113]. En la mayoría de los casos, sería mejor apartar el enfoque original utilizando qsmove antes de utilizar un comando de creación de datos para crear un enfoque nuevo. • La opción -force solo tiene un efecto en enfoques de salida especificados de modo explícito. Si está utilizando un comando de creación de datos para modificar un enfoque existente de modo implícito, no es necesario utilizar -force. Ejemplos Crear un nuevo enfoque RetailTransAprilSorted.ftr y sobrescribir cualquier enfoque existente con el mismo nombre, que contenga todos los registros del enfoque RetailTransApril.ftr ordenados según el campo CustomerID: qssort -force -output RetailTransAprilSorted.ftr -input RetailTransApril.ftr -keys CustomerID 24 Portrait Miner 7.1 Capítulo 2: Comandos de creación de datos de Portrait Miner La opción de línea de comandos -macro Esta opción se aplica a los comandos: qsderive, qsmeasure, qstrack y qsselect Comando Objetivo -macro <nombre>=<valor> Antes de analizar un archivo de entrada TML o XML correspondiente, reemplazar todas las instancias de $<nombre> con el valor dado. Puede utilizar esta opción repetidamente sobre la misma línea de comandos para especificar expansiones para macros múltiples. -macro @<archivo de macros> Realizar sustitución de macro en archivos de entrada TML y XML correspondientes mediante la lectura de los pares <nombre>=<valor> de líneas sucesivas del archivo de macros. El archivo de macros también puede estar en formato XML. Nota: • Los nombres para macros deben comenzar con una letra e incluir solo letras, dígitos y guión bajo ("_"). • Data Build Manager proporciona soporte similar, pero independiente, para macros. Ejemplos Dado el archivo de selecciones, selections-macro.tml, que contiene lo siguiente: create ${monthName}Trans${year} := month(PurchaseDate) = ${month} and year(PurchaseDate) = ${year}; Utilizar sustituciones de macros para seleccionar registros para abril de 1999 del enfoque RetailTransApril.ftr: qsselect -macro monthName=April -macro year=1999 -macro month=4 -selections selections-macro.tml -input RetailTransApril.ftr -output RetailTransAprilSelection1.ftr O, como alternativa, dado el archivo de macros, macros.tml, que contiene lo siguiente: monthName=April year=1999 month=4 Aplicar estos macros para lograr el mismo resultado: qsselect -macro @macros.tml -selections selections-macro.tml -input RetailTransApril.ftr -output RetailTransAprilSelection2.ftr Guía de referencia del comando de creación de datos y TML 25 La opción de línea de comandos -macro También consulte XML en Portrait Miner en la página 342 26 Portrait Miner 7.1 Capítulo Administrar el comando de creación de datos Portrait Miner En esta sección: • qsbuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 3 qsbuild qsbuild Sinopsis qsbuild [-input <plan de creación de datos>] [-targets <objetivo> [, <objetivo> ...] [-skip <objetivo> [, <objetivo> ...] [-D<nombre>=<valor>] [-propertyfile <archivo de propiedades>] [-describe] [-dryrun] [-validate full | -validate warn | -validate none] [-schema <nombre de esquema>] [-lib <ruta de clase>] [-preprocess] [-warn] Descripción: ejecutar el plan de creación de datos qsbuild.qsb en el directorio actual (a menos que se especifique un plan distinto de creación de datos con la opción -input). Argumentos opcionales Opción Efecto -D<nombre>=<valor> Asignar el valor determinado u otra propiedad al parámetro mencionado. (Observe que no hay espacio luego de la -D.) -describe En lugar de ejecutar el plan de creación de datos, descríbalo, enumerando los objetivos principales y sus descripciones. -dryrun Ejecutar el plan de creación de datos como lo hace normalmente, pero muestre los comandos de creación de datos en lugar de ejecutarlos. (Toda tarea que no sea un comando de creación de datos se ejecuta normalmente). -input <plan de creación de datos> Utilice el plan de creación de datos especificado, en lugar del archivo qsbuild.qsb en el directorio actual. -lib <ruta de clase> Utilice la ruta de clase especificada como ruta de búsqueda adicional para las clases de Java. -preprocess Valide el plan de creación de datos y genere un archivo intermedio de creación. -propertyfile <archivo de propiedades> Asignar valores a los parámetros o a otras propiedades mediante la lectura de los pares 28 Portrait Miner 7.1 Capítulo 3: Administrar el comando de creación de datos Portrait Miner Opción Efecto <nombre>=<valor> de líneas sucesivas del archivo de propiedades. -schema <archivo de esquema> Valide el plan de creación de datos de acuerdo con el esquema especificado (con sintaxis RELAX NG) en lugar del esquema al que se hace referencia en el plan de creación de datos. Puede utilizar un URI para especificar la ubicación de un archivo de esquema que no es local. -skip <objetivo> [, <objetivo> ...] No cree los objetivos especificados, aunque otros objetivos dependan de ellos. -targets <objetivo> [, <objetivo> ...] Cree los objetivos especificados en lugar del objetivo predeterminado. -validate fail Valide el plan de creación de datos según su esquema y ejecute el plan sólo si es válido (predeterminado si no especifica una opción -validate). -validate none No valide el plan de creación de datos según su esquema. -validate warn Valide el plan de creación de datos según su esquema; si hay errores emita advertencias, pero intente ejecutar el plan sin importar su validez. -warn En lugar de abortar un plan de creación de datos cuando no se puede crear el objetivo, emita una advertencia e intente crear otros objetivos que no dependan del objetivo que presenta errores. Además de estas opciones de la línea de comandos, qsbuild acepta las opciones comunes a todos los comandos de creación de datos [consultar Opciones estándar de la línea de comandos en la página 21]. Nota: • El plan de creación de datos describe de qué manera crear un conjunto de datos para analizar o implementar un modelo. Contiene una cantidad de "objetivos" dependientes entre sí y las secuencias de las operaciones necesarias para crear los objetivos. El archivo utiliza un formato con base XML. Para obtener más información sobre Data Build Manager y los formatos de los planes de preparación de datos, consulte Uso de Data Build Manager. • Además puede acceder a la mayoría de las funciones de qsbuild a través de Data Build Manager , disponible a través de Portrait Miner. Ejemplos Ejecute una creación de datos con el plan de creación de datos qsbuild-starter.qsb: qsbuild -input qsbuild-starter.qsb Utilice la tarea Limpiar solamente dentro del plan de creación de datos qsbuild.qsb: qsbuild -targets Clean -input qsbuild.qsb Guía de referencia del comando de creación de datos y TML 29 qsbuild Ejecute el plan de creación de datos qsbuild.qsb con el parámetro Month establecido en June: qsbuild -DMonth=June -input qsbuild.qsb También consulte XML en Portrait Miner en la página 342 30 Portrait Miner 7.1 Capítulo Comandos para importar y exportar datos En esta sección: • • • • • • • • • • • • • qsdbaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 qsimportdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 qsdbcreatetable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 qsdbinsert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 qsdbupdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 qsgenfdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 qsimportflat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 qsexportflat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 qsimportstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 qsexportstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 qsimportfocus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 Cómo Portrait Miner importa los tipos de base de datos .54 Formatos de fecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 4 qsdbaccess qsdbaccess Sinopsis qsdbaccess {,-add | -list | -test <UDC> | -delete <UDC>,}[-system] Descripción: Crear interactivamente una UDC (conexión de base de datos del usuario), hacer una lista, probar o eliminar una UDC. Cuando utiliza -add, qsdbaccess le solicita que ingrese un DSN, nombre de usuario, y una contraseña. Los UDC se utilizan en comandos de creación de datos relacionados con bases de datos y en otras partes de Portrait Miner para conectarse con bases de datos. Consultar la Guía de Administración de Portrait Miner para obtener más información. Argumentos opcionales Opción Efecto -system Aplicar la operación (agregar, enumerar, probar o eliminar) a las UDC del sistema en lugar de hacerlo con sus UDC personales. Cuando utiliza -add con -system, qsdbaccess además le solicita una URL, una clase y un DRL. Por lo general deberá aceptar las opciones predeterminadas de estas características. La opción -system sólo debe ser utilizada por los administradores del sistema. Además de esta opción de la línea de comandos, qsdbaccess acepta las opciones comunes a todos los comandos de creación de datos [consultar Opciones estándar de la línea de comandos en la página 21]. Nota: • Un UDC está cifrado: si contiene detalles para la identificación del usuario, sólo usted puede utilizarlos para acceder a la base de datos en cuestión. • Cuando crea un UDC, qsdbaccess sobrescribe cualquier UDC preexistente con el mismo nombre (y por lo tanto sobrescribe los detalles asociados para la identificación del usuario). • El nombre del UDS es sensible al uso de mayúsculas (fred y Fred son distintos), inclusive si el DSN no es sensible al uso de mayúsculas del controlador ODBC. • Con Portrait Miner, podrá acceder a las funciones de qsdbaccess a través del cuadro de diálogo Editar la conexión de la base de datos. . Ejemplos: crear un UDC para el usuario user para acceder al DSN de la base de datos retail: qsdbaccess Please enter required text at the ">" prompt: DSN> retail 32 Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos User> user Password> Updating connection user@retail Update OK Testing connection user@retail ODBC OK JDBC OK Connection OK Crear un UDC de sistema (como usuario administrador) para que cualquier usuario pueda acceder a la base de datos DSN retaila: qsdbaccess -system Please enter required text at the ">" prompt: DSN> retail User> [Just pressing ENTER will use the system default] URL> Class> DRL> Updating connection dbuser@dbserver:db Update OK También consulte qsdbcreatetable en la página 35 qsdbinsert en la página 37 qsdbupdate en la página 38 qsimportdb en la página 33 qsimportdb Sinopsis qsimportdb -udc <UDC> -table <tabla de base de datos o vista> -fields <columna>> [, <columna> ...] | -fields @<archivo de campos>] -xfields <columna> [, <columna> ...] | -xfields @<archivo de campos>] [-catalog <nombre de catálogo>] [-schema <nombre de esquema>]-output <enfoque de destino> [-force] qsimportdb -udc <UDC> -sql <archivo SQL> -output <enfoque de destino> [-force] Descripción: Crear el enfoque de destino de la tabla de base de datos o vista especificada, que está en la base de datos con la UDC proporcionada [consulte qsdbaccess en la página 32]. Alternativamente, crear el enfoque del resultado de una instrucción SQL SELECT (proporcionada en un archivo SQL). Argumentos opcionales Guía de referencia del comando de creación de datos y TML 33 qsimportdb Opción Efecto -catalog <nombre de catálogo> Ubicar la tabla en este catálogo de base de datos. -fields <columna> [, <columna> ...] Crear campos en el enfoque de destino que correspondan únicamente a las columnas especificadas en la tabla. -fields @<archivo de campos> Crear campos en el enfoque de destino que correspondan únicamente a las columnas en la tabla que se enumeran (una por línea) en el archivo de campos. -force Consulte la La opción de línea de comandos -force en la página 24. -schema <nombre de esquema> Ubicar la tabla en este esquema de base de datos. -xfields <columna> [, <columna> ...] Crear campos en el enfoque de destino que correspondan a todas las columnas en la tabla excepto las columnas especificadas. -xfields @<archivo de campos> Crear campos en el enfoque de destino que correspondan a todas las columnas en la tabla excepto las columnas que se enumeran (una por línea) en el archivo de campos. Además de estas opciones de línea de comandos, qsimportdb acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si se especifica un identificador (por ejemplo, un nombre de tabla o campo) como un argumento de línea de comandos, qsimportdb lo pasa al controlador ODBC entre comillas, y su base de datos su base de datos puede tratar al identificador con diferenciación entre minúsculas y mayúsculas. • El SQL especificado con la opción -sql se pasa tal cual a la base de datos como una instrucción única; no se requiere un punto y coma de terminación (y puede ser una sintaxis inválida para algunos sistemas de base de datos). • Al utilizar qsimportdb, es posible crear un enfoque que no tenga nombres de campo compatibles con Portrait Miner. Para convertir el enfoque a una forma que se pueda utilizar en Decision Studio o con otros comandos de creación de datos, se le puede cambiar el nombre a los campos mediante qsrenamefields. • Al utilizar Portrait Miner, puede acceder a la mayor parte de la funcionalidad de consulta de base de datos de qsimportdb mediante el cuadro de diálogo Importar desde la consulta . Ejemplos Crear un enfoque RetailCustApril.ftr que contenga todos los registros de la tabla RetailCustApril, en el DSN al que se refiere la UDC user@retail: qsimportdb -table RetailCustApril -udc user@retail -output RetailCustApril.ftr 34 Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Crear un enfoque RetailTransAprilCA.ftr, que contenga solo registros de la tabla RetailCustApril para la que el valor de la columna PaymentMethod equivale a CA: Dado el archivo de consulta SQL,select-statement.sql, que contiene lo siguiente: select * from RetailTransApril where (PaymentMethod = 'CA') Aplicar esta consulta para crear un nuevo enfoque, RetailTransAprilCA.ftr: qsimportdb -sql select-statement.sql -udc user@retail -output RetailTransAprilCA.ftr También consulte qsdbcreatetable en la página 35 qsdbinsert en la página 37 qsdbupdate en la página 38 qsdbcreatetable Sinopsis qsdbcreatetable -udc < UDC > -focus <enfoque de plantilla> [-subfocus <subenfoque>] -table <tabla de destino> -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-catalog <nombre de catálogo>] [-schema <nombre de esquema>] [-output <archivo de salida SQL>] qsdbcreatetable -udc <UDC> -sql <archivo SQL> Descripción: con el enfoque de plantilla actual defina los nombres y tipos de campo para crear una nueva tabla de base de datos vacía con el nombre de tabla dado, en la base de datos con el UDC determinado [consultar qsdbaccess en la página 32]. Alternativamente, crear una nueva tabla con una instrucción SQL CREATE TABLE (proporcionada en un archivo SQL). Argumentos opcionales Guía de referencia del comando de creación de datos y TML 35 qsdbcreatetable Opción Efecto -catalog <nombre de catálogo> Crear la tabla en este catálogo de base de datos. -fields <campo> [, <campo> ...] Crear columnas de la tabla que correspondan únicamente a los campos especificados en el enfoque. -fields @<archivo de campos> Crear columnas de la tabla que correspondan únicamente a los campos en el enfoque que se enumeran (uno por línea) en el archivo de campos. [-output <archivo de salida SQL>] En lugar de crear una tabla en la base de datos, crear un archivo de salida SQL que contenga la instrucción CREATE TABLE adecuada. Luego puede utilizar el archivo SQL como entrada en qsdbcreatetable (con la opción -sql). -schema <nombre de esquema> Crear la tabla en este esquema de base de datos. -subfocus <subenfoque> Utilizar el subenfoque especificado del enfoque de plantilla. -tags <etiqueta> [, <etiqueta> ...] Crear columnas de la tabla que correspondan únicamente a los campos en el enfoque que tienen las etiquetas especificadas. -xfields <campo> [, <campo> ...] Crear columnas de la tabla que correspondan a todos los campos en el enfoque excepto los campos especificados. -xfields @<archivo de campos> Crear columnas de la tabla que correspondan a todos los campos en el enfoque excepto los campos que se enumeran (uno por línea) en el archivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Crear columnas de la tabla que correspondan a todos los campos en el enfoque excepto los campos que tienen las etiquetas especificadas. Además de estas opciones de línea de comandos, qsdbcreatetable acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si se especifica un identificador (por ejemplo, un nombre de tabla o campo) como un argumento de línea de comandos, qsdbcreatetable lo pasa al controlador ODBC entre comillas, y su base de datos puede tratar al identificador con diferenciación entre minúsculas y mayúsculas. • El SQL especificado con la opción -sql se pasa tal cual a la base de datos como una instrucción única; no se requiere un punto y coma de terminación (y puede ser una sintaxis inválida para algunos sistemas de base de datos). Ejemplo 36 Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Crear una tabla de base de datos vacía, RETAILAGGREGATIONS, desde el enfoque RetailAggregationsApril.ftr, con conexión a través de la UDC retail: qsdbcreatetable -focus RetailAggregationsApril.ftr -table RETAILAGGREGATIONS -udc user@retail También consulte qsdbinsert en la página 37 qsdbupdate en la página 38 qsimportdb en la página 33 qsdbinsert Sinopsis qsdbinsert-udc <UDC> -input <enfoque de origen> [-subfocus <subenfoque>] -table <tabla de destino> -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-catalog <nombre de catálogo>] [-schema <nombre de esquema>] Descripción: insertar los registros del enfoque de origen en la tabla de base de datos (con una instrucción SQL INSERT). Ubicar la tabla en la base de datos con la UDC proporcionada [consulte qsdbaccess en la página 32]. Argumentos opcionales Opción Efecto -catalog <nombre de catálogo> Ubicar la tabla en este catálogo de base de datos. -fields <campo> [, <campo> ...] Insertar datos únicamente de los campos especificados en el enfoque. -fields @<archivo de campos> Insertar datos únicamente de los campos en el enfoque que están enumerados (uno por línea) en el archivo de campos. -schema <nombre de esquema> Ubicar la tabla en este esquema de base de datos. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque de origen. Guía de referencia del comando de creación de datos y TML 37 qsdbupdate Opción Efecto -tags <etiqueta> [, <etiqueta> ...] Insertar datos únicamente de los campos en el enfoque que tienen las etiquetas especificadas. -xfields <campo> [, <campo> ...] Insertar datos de todos los campos en el enfoque excepto los campos especificados. -xfields @<archivo de campos> Insertar datos de todos los campos en el enfoque excepto los campos que se enumeran (uno por línea) en el archivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Insertar datos de todos los campos en el enfoque excepto los campos que tienen las etiquetas especificadas. Además de estas opciones de línea de comandos, qsdbinsert acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Para crear una tabla vacía en la que se puedan insertar registros, utilice qsdbcreatetable. • El comando qsdbinsert inserta registros adicionales en una tabla de base de datos en lugar de actualizar registros existentes. No verifica registros duplicados (o registros con teclas duplicadas), aunque su base de datos se puede configurar para cumplir con esa verificación. • Los campos en el enfoque (o aquellos especificados mediante las opciones -fields o -xfields) deben coincidir con el nombre y ser de tipo compatible con las columnas en la tabla de base de datos. • Si se especifica un identificador (por ejemplo, un nombre de tabla o campo) como un argumento de línea de comandos, qsdbinsert lo pasa al controlador ODBC entre comillas, y su base de datos puede tratar al identificador con diferenciación entre minúsculas y mayúsculas. Ejemplo Insertar datos del enfoque RetailAggregationsApril.ftr en la tabla de base de datos RETAILAGGREGATIONS: qsdbinsert -input RetailAggregationsApril.ftr -table RETAILAGGREGATIONS -udc user@retail También consulte qsdbupdate en la página 38 qsdbupdate Sinopsis qsdbupdate -udc <UDC> -input <enfoque de origen> [-subfocus <subenfoque>] -table <tabla de destino> 38 Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos {-keys <campo clave> [, <campo clave>] [, <campo clave>] | -key @<archivo clave>} -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-catalog <nombre de catálogo>] [-schema <nombre de esquema>] Descripción: actualizar los registros en la tabla de base de datos con datos de los campos especificados en el enfoque de origen (con una instrucción SQL UPDATE). Cada registro en el enfoque actualiza todos los registros con los mismos valores de campo clave en la tabla de base de datos. Ubicar la tabla en la base de datos con la UDC proporcionada [consulte qsdbaccess en la página 32]. Argumentos opcionales Opción Efecto -catalog <nombre de catálogo> Ubicar la tabla en este catálogo de base de datos. -fields <campo> [, <campo> ...] Actualizar la tabla únicamente con datos de los campos especificados en el enfoque. -fields @<archivo de campos> Actualizar la tabla únicamente con datos de los campos en el enfoque que están enumerados (uno por línea) en el archivo de campos. -schema <nombre de esquema> Ubicar la tabla en este esquema de base de datos. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque de origen. -tags <etiqueta> [, <etiqueta> ...] Actualizar la tabla únicamente con los datos de los campos en el enfoque que tienen las etiquetas especificadas. -xfields <campo> [, <campo> ...] Actualizar la tabla con los datos de todos los campos en el enfoque excepto los campos especificados. -xfields @<archivo de campos> Actualizar la tabla con los datos de todos los campos en el enfoque excepto los campos que se enumeran (uno por línea) en el archivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Actualizar la tabla con los datos de todos los campos en el enfoque excepto los campos que tienen las etiquetas especificadas. Además de estas opciones de línea de comandos, qsdbupdate acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Guía de referencia del comando de creación de datos y TML 39 qsgenfdd Nota: • El comando qsdbupdate no inserta ningún registro adicional en una tabla de base de datos. • Los campos en el enfoque (o aquellos especificados mediante las opciones -fields o -xfields) deben coincidir con el nombre y ser de tipo compatible con las columnas en la tabla de base de datos. Sin embargo, no se tienen que actualizar los valores en todas las columnas de la tabla. • Si se especifica un identificador (por ejemplo, un nombre de tabla o campo) como un argumento de línea de comandos, qsdbupdate lo pasa al controlador ODBC entre comillas, y su base de datos puede tratar al identificador con diferenciación entre minúsculas y mayúsculas. Ejemplo Actualizar únicamente los campos numberPurchases, averagePurchase y totalPointsRedeemed en la tabla RETAILAGGREGATIONS con el enfoque RetailAggregationsMay.ftr: qsdbupdate -udc user@retail -keys CustomerID -input RetailAggregationsMay.ftr -table RETAILAGGREGATIONS -fields "numberPurchases, averagePurchase, totalPointsRedeemed" También consulte qsdbcreatetable en la página 35 qsdbinsert en la página 37 qsgenfdd Sinopsis qsgenfdd -input <archivo plano> [-template <archivo FDD de plantilla>] [-headers] [-separator <separador de campo>] [-null <marcador nulo>] [-stringmarker <marcador de secuencia>] [-datemarker <marcador de fecha>] [-dateformat <formato de fecha>] [-defaultday <número de día>] [-defaultmonth <número de mes>] [-comment <comentario de tabla>] Descripción: crear un archivo de descripción de datos planos (archivo .fdd) para el archivo plano al examinar una muestra de los registros para definir el formato del archivo. Nombrar el archivo de descripción de datos planos mediante el nombre de base del archivo plano y crearlo en el mismo directorio en el que se encuentra el archivo plano. Argumentos opcionales 40 Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Opción Efecto -comment <comentario de tabla> Incluir este comentario de tabla en el archivo de descripción de datos planos. -dateformat <formato de fecha> Anular el formato de fecha seleccionado automáticamente [consulte Formatos de fecha en la página 55]. -datemarker <marcador de fecha> Anular el carácter del marcador de fecha seleccionado automáticamente. -defaultday <número de día> Incluir este número de día en fechas que no tengan un componente de día. -defaultmonth <número de mes> Incluir este número de mes en fechas que no tengan un componente de mes. -headers Incluir una descripción de los datos teniendo en cuenta que tienen una línea de encabezado inicial que contiene los nombres de los campos. -null <marcador nulo> Anular la secuencia de marcador nulo seleccionado automáticamente. -separator <separador de campo> Anular el carácter de separador de campo seleccionado automáticamente. -stringmarker <marcador de secuencia> Anular el carácter del marcador de secuencia seleccionado automáticamente. -template <archivo FDD de plantilla> Basar el archivo de descripción de los datos planos en este archivo existente de descripción de datos planos de plantilla. Consulte Ayuda de Portrait Miner para obtener más información sobre opciones de archivos planos. Además de estas opciones de línea de comandos, qsgenfdd acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si ya existe un archivo de descripción de datos planos válido, qsgenfdd no realizará ninguna acción. • En la mayoría de los casos, qsgenfdd selecciona automáticamente los valores adecuados para la metadata que describe un archivo plano. No obstante, debido a que solamente analiza una muestra de los datos en el archivo plano (y debido a que pueden existir ambigüedades en el formato del archivo plano), puede realizar inferencias incorrectas. Incluso si esto ocurre, habitualmente solo se debe anular uno o dos parámetros para lograr una interpretación correcta del archivo de datos. • Se puede controlar el tamaño de las muestras utilizadas en la detección automática de formato mediante las preferencias de la Base de datos del archivo plano tamaño de muestra del formato de datos y tamaño de muestra de los datos (consulte Ayuda de Portrait Miner). Guía de referencia del comando de creación de datos y TML 41 qsimportflat • Para que la detección automática de formato funcione, los campos del archivo plano deben estar delimitados por un carácter de separación en lugar de diferenciarse por su posición (es decir, el archivo no puede tener un formato de ancho fijo). • Si se utiliza un archivo FDD de plantilla, debe contener una descripción de todos los campos en un componente table. • Las opciones de formato especificadas en la línea de comandos anulan las opciones de formato globales en un archivo FDD de plantilla, lo que, a su vez, anula las opciones de formato globales detectadas automáticamente. Las opciones de línea de comandos no anulan las opciones específicas de los campos. • También es posible acceder a la función de qsgenfdd mediante el asistente Nuevo enfoque disponible en Decision Studio o Portrait Miner. Ejemplos Crear un archivo de descripción de datos planos para el archivo de texto RetailCustMay.txt: qsgenfdd -input RetailCustMay.txt Utilizar el archivo FDD resultante para crear un nuevo enfoque, RetailCustMay.ftr: qsimportflat -input RetailCustMay.fdd -output RetailCustMay.ftr Utilizar una secuencia de formato de datos personalizada para crear un archivo FDD para el archivo de texto RetailCustMay.txt: qsgenfdd -dateformat "%d-%b-%Y %H:%M:%S" -input RetailCustMay.txt También consulte qsexportflat en la página 44 qsimportflat en la página 42 qsimportflat Sinopsis qsimportflat -input <archivo plano> -output <enfoque de destino> [-force] -encoding <codificación> -fields <campo> [, <campo> ...] | -fields @<archivo de campos>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos>] [-maxwarnings <número de advertencias>] | [-nowarnings] [-maxerrors <cantidad de errores>] Descripción Crear el enfoque de destino a partir de los datos en el archivo plano (que puede ser un archivo de texto o un archivo de descripción de datos planos). Argumentos opcionales 42 Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Opción Efecto -encoding <codificación> Ingresar codificación de archivo (UTF-8, Shift-JIS, LATIN1, EUC_JP, UTF16-LE, UTF_BE, etc.). . -fields <campo> [, <campo> ...] Crear campos en el enfoque de destino que correspondan solamente a los campos especificados en el archivo plano. -fields @<archivo de campos> Crear campos en el enfoque de destino que correspondan solamente a los campos en el archivo plano enumerados en el archivo de campos (uno por línea). -force Consulte la La opción de línea de comandos -force en la página 24. -maxerrors <cantidad de errores> Cancelar la importación del archivo plano si el proceso genera una cantidad mayor de errores que la especificada, en relación con el formato del archivo plano. -maxwarnings <número de advertencias> Cancelar la importación del archivo plano si el proceso genera una cantidad mayor de advertencias que la especificada, en relación con el formato del archivo plano. -nowarnings No generar ninguna advertencia en relación con el formato del archivo plano. -xfields <campo> [, <campo> ...] Crear campos en el enfoque de destino que correspondan a todos los campos en el archivo plano, a excepción de los campos especificados. -xfields @<archivo de campos> Crear campos en el enfoque de destino que correspondan a todos los campos en el archivo plano, a excepción de los campos enumerados en el archivo de campos (uno por línea). Además de estas opciones de línea de comandos, qsimportflat acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Preferentemente, se debe especificar un archivo de descripción de datos planos (FDD) antes que un archivo de texto como la entrada para qsimportflat. Se puede crear un archivo FDD a partir de un archivo de texto mediante qsgenfdd. • Por defecto, la Base de datos del archivo plano tiene la preferencia permitir errores de formato de datos activada (consulte la Ayuda de Portrait Miner). Esto implica que todos los errores de formato del archivo plano se interpretan como advertencias y la opción -maxerrors no surte efecto. • Las opciones -maxerrors, -maxwarnings y -nowarnings anulan la configuración de la Base de datos del archivo plano en cuanto a las preferencias errores máximos de Guía de referencia del comando de creación de datos y TML 43 qsexportflat extracción, advertencias máximas de extracción e ignorar advertencias de extracción respectivamente. • También es posible acceder a la función de qsimportflat mediante el asistente Nuevo enfoque disponible en Decision Studio o Portrait Miner. Ejemplos Crear un nuevo enfoque RetailTransApril.ftr, que contenga todos los campos del archivo plano RetailTransApril.txt: qsimportflat -input RetailTransApril.txt -output RetailTransApril.ftr Crear un nuevo enfoque, RetailCustAprilSomeFields.ftr, que contenga los campos CustomerID, StartDate, Age, Postcode y Gender del archivo plano RetailCustApril.txt, al tiempo que se crea un archivo FDD: qsgenfdd -input RetailCustApril.txt qsimportflat -fields "CustomerID, StartDate, Age, Postcode, Gender" -input RetailCustApril.fdd -output RetailCustAprilSomeFields.ftr luego, crear otro enfoque RetailCustAprilOtherFields.ftr que contenga todos los campos excepto CustomerID y Postcode, a partir del archivo plano RetailCustApril.txt, con el mismo archivo FDD: qsimportflat -xfields "CustomerID, Postcode" -input RetailCustApril.fdd -output RetailCustAprilOtherFields.ftr También consulte qsexportflat en la página 44 qsexportflat Sinopsis qsexportflat -input <enfoque de origen> [-subfocus <subenfoque>] -output <archivo plano> [-alwaysquotestrings] -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-records <expresión FDL> | -records @<archivo FDL>] [-template <archivo FDD de plantilla>] [-fdd] [-headers] 44 Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos [-separator <separador de campo>] [-null <marcador nulo>] [-stringmarker <marcador de secuencia>] [-datemarker <marcador de fecha>] [-dateformat <formato de fecha>] [-defaultday <número de día>] [-defaultmonth <número de mes>] [-fixedformat] Descripción Crear el archivo plano a partir de los datos en el enfoque de origen. Argumentos opcionales Opción Efecto -alwaysquotestrings Colocar todos los valores de la secuencia entre comillas en el archivo plano, en lugar de colocar solo aquellos que contienen caracteres especiales (como el separador). -dateformat <formato de fecha> Utilizar este formato [consulte Formatos de fecha en la página 55] para las fechas del archivo plano. -datemarker <marcador de fecha> Utilizar este carácter de marcador para introducir fechas en el archivo plano. -defaultday <número de día> Incluir este número de día en cualquier archivo de descripción de datos planos generado (para describir fechas cuyo formato no contenga un componente de día). -defaultmonth <número de mes> Incluir este número de mes en cualquier archivo de descripción de datos planos generado (para describir fechas cuyo formato no contenga un componente de mes). -fdd Así como se crea el archivo plano, se debe crear un archivo de descripción de datos planos (archivo .fdd) para describir el formato de la fecha. -fields <campo> [, <campo> ...] Crear campos en el archivo plano que correspondan únicamente a los campos especificados en el enfoque de origen. -fields @<archivo de campos> Crear campos en el archivo plano que correspondan únicamente a los campos en el enfoque de origen enumerados en el archivo de campos (uno por línea). Guía de referencia del comando de creación de datos y TML 45 qsexportflat Opción Efecto -fixedformat Utilizar una cantidad de caracteres fija para cada campo (seleccionada para adaptarse a todos los valores posibles de ese tipo de datos). Se puede utilizar esta opción junto a un separador de campo vacío para crear un archivo plano cuyos campos se diferencien por su posición y no por el uso de un carácter de separación. -headers Incluir una línea inicial para el encabezado en el archivo plano que contenga los nombres de los campos. -null <marcador nulo> Utilizar esta secuencia de marcador nulo en lugar de un espacio vacío para indicar las ocurrencias del valor nulo en el archivo plano. -records <expresión FDL> Crear registros en el archivo plano que correspondan solamente a los registros en el enfoque de origen para los que la expresión FDL numérica no es cero ("true"). -records @<archivo FDL> Crear registros en el archivo plano que correspondan solamente a los registros en el enfoque de origen para los que la expresión FDL no es cero ("true") en el archivo especificado. -separator <separador de campo> Utilizar este carácter de separador de campo en lugar de una coma. -stringmarker <marcador de secuencia> Utilizar este carácter de marcador de campo en lugar de comillas dobles. 46 -subfocus <subenfoque> Usar el subenfoque especificado del enfoque de origen. -tags <etiqueta> [, <etiqueta> ...] Crear campos en el archivo plano que correspondan solamente a los campos en el enfoque que tiene las etiquetas especificadas. -template <archivo FDD de plantilla> Basar el formato del archivo plano en este archivo existente de descripción de datos planos de plantilla. -xfields <campo> [, <campo> ...] Crear campos en el archivo plano que correspondan a todos los campos en el enfoque de origen, a excepción de los campos especificados. -xfields @<archivo de campos> Crear campos en el archivo plano que correspondan a todos los campos en el enfoque Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Opción Efecto de origen, a excepción de los campos enumerados en el archivo de campos (uno por línea). -xtags <etiqueta> [, <etiqueta> ...] Crear campos en el archivo plano que correspondan a todos los campos en el enfoque de origen, a excepción de los campos que tienen etiquetas específicas. Consulte Ayuda de Portrait Miner para obtener más información sobre opciones de archivos planos. Además de estas opciones de línea de comandos, qsexportflat acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si se utiliza una expresión de selección FDL (para exportar solamente un subconjunto de los registros del foco), se deben exportar todos los campos utilizados en esa expresión. • Si se especifica un archivo plano con la extensión .fdd, qsexportflat lo trata como un archivo de descripción de datos planos (independientemente de que se especifique la opción -fdd) y crea un archivo plano correspondiente con la extensión .txt. • Si se utiliza un archivo FDD de plantilla, debe contener una descripción de todos los campos en un componente table. • Las opciones de formato especificadas en la línea de comandos anulan las opciones de formato globales en el archivo FDD de plantilla. Las opciones de línea de comandos no anulan las opciones específicas de los campos. • Si ya existe un archivo plano con el mismo nombre del archivo de salida, qsexportflat hace una copia de seguridad del archivo existente (con "~" anexado al nombre del archivo) en lugar de solamente sobrescribirlo. • Es posible acceder a la mayoría de las funciones de qsexportflat mediante el cuadro de diálogo Exportar enfoque en Decision Studio o el asistente Exportar texto disponible en Portrait Miner . Ejemplos Crear un nuevo archivo plano (RetailTransApril.csv) que contenga todos los registros del enfoque RetailTransApril.ftr: qsexportflat -input RetailTransApril.ftr -output RetailTransApril.csv Crear un nuevo archivo plano RetailTransAprilDates.csv que contenga solamente los campos CustomerID y PurchaseDate del enfoque RetailTransApril.ftr utilizando un formato de fecha específico: qsexportflat -fields "CustomerID, PurchaseDate" -dateformat "%e %h %Y" -input RetailTransApril.ftr -output RetailTransAprilDates.csv Dado el archivo de descripción de datos planos de plantilla template.fdd, que contiene lo siguiente: separator | null (###) dateformat ((%e %h %Y)) skip header Guía de referencia del comando de creación de datos y TML 47 qsimportstat table \ CustomerID string(18) \ PurchaseDate date \ Store integer \ Amount real \ PaymentMethod string(2) \ PointsRedeemed integer Implementar esta plantilla para crear un archivo plano RetailTransAprilDates.txt: qsexportflat -template template.fdd -input RetailTransApril.ftr -output RetailTransAprilDates.txt También consulte qsgenfdd en la página 40 qsimportflat en la página 42 qsimportstat Sinopsis qsimportstat -input <conjunto de datos de origen> -output <enfoque de destino> [-force] [-type <tipo de conjunto de datos>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos>][-metadata <archivo de metadata>] Descripción: Crear el enfoque de destino a partir de datos en el conjunto de datos de origen creado por terceros. Los conjuntos de datos SAS, SPSS y de Excel son algunos de los conjuntos admitidos (consulte http://support.quadstone.com/info/requirements/ para obtener una lista detallada). Argumentos opcionales 48 Opción Efecto -fields <campo> [, <campo> ...] Crear campos en el enfoque de destino que correspondan solamente a los campos especificados en el conjunto de datos de origen. -fields @<archivo de campos> Crear campos en el enfoque de destino que correspondan solamente a los campos en el conjunto de datos de origen enumerados en el archivo de campos (uno por línea). -force Consulte la La opción de línea de comandos -force en la página 24. -metadata <archivo de metadata> Crear un archivo de metadata a partir de un archivo de catálogo SAS format.sas7bcat que debe Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Opción Efecto estar incluido en la misma carpeta que el conjunto de datos SAS de origen. -type <tipo de conjunto de datos> Interpretar el conjunto de datos de origen como el tipo de conjunto de datos especificado, y anular la interpretación por defecto (que depende de la extensión del archivo). Los tipos de conjuntos de datos válidos incluyen sas, spss y excel; para consultar una lista completa, utilice la opción -help. -xfields <campo> [, <campo> ...] Crear campos en el enfoque de destino que correspondan a todos los campos en conjunto de datos de origen, a excepción de los campos especificados. -xfields @<archivo de campos> Crear campos en el enfoque de destino que correspondan a todos los campos en el conjunto de datos de origen, a excepción de los campos enumerados en el archivo de campos (uno por línea). Además de estas opciones de línea de comandos, qsimportstat acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si intenta importar desde un conjunto de datos SAS y ya existe el archivo de metadata, se produce un error en la operación. Para evitarlo, utilice el argumento -force. • Mediante Portrait Miner, se puede acceder a la mayoría de las funciones de qsimportstat mediante el cuadro de diálogo Importar enfoque . Ejemplos Crear un nuevo enfoque RetailTransApril.ftr, que contenga todos los campos del archivo SAS RetailTransApril.sas7bdat: qsimportstat -input RetailTransApril.sas7bdat -output RetailTransApril.ftr Crear un nuevo enfoque RetailCustAprilSomeFields.ftr que contenga los campos CustomerID, StartDate, Age, Postcode y Gender a partir del archivo SAS RetailCustApril.bin: qsimportstat -fields "CustomerID, StartDate, Age, Postcode, Gender" -input RetailCustApril.bin -type sas -output RetailCustAprilSomeFields.ftr También consulte qsdescribestat en la página 107 qsexportstat en la página 50 Guía de referencia del comando de creación de datos y TML 49 qsexportstat qsexportstat Sinopsis qsexportstat -input <enfoque de origen> [-subfocus <subenfoque>] -output <conjunto de datos de destino> [-overwrite] [-type <tipo de conjunto de datos>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-records <expresión FDL> | -records @<archivo FDL>] Descripción: Crear el conjunto de datos de destino de terceros a partir de los datos en el enfoque de origen. Los conjuntos de datos SAS, SPSS y de Excel son algunos de los conjuntos admitidos (consulte http://support.quadstone.com/info/requirements/ para obtener una lista detallada). Argumentos opcionales Opción Efecto -fields <campo> [, <campo> ...] Crear campos en el conjunto de datos de destino que correspondan solamente a los campos especificados en el enfoque de origen. -fields @<archivo de campos> Crear campos en el conjunto de datos de destino que correspondan solamente a los campos en el enfoque de origen enumerados en el archivo de campos (uno por línea). -overwrite Permitir que un nuevo conjunto de datos especificado mediante la opción -output sobrescriba un archivo existente. Sin la opción -overwrite, si ya existe el conjunto de datos especificado mediante -output, el comando no realizará ninguna acción (excepto emitir una advertencia). 50 -records <expresión FDL> Crear registros en el conjunto de datos de destino que correspondan solamente a los registros en el enfoque de origen para los que la expresión FDL numérica no es cero ("true"). -records @<archivo FDL> Crear registros en el conjunto de datos de destino que correspondan solamente a los registros en el enfoque de origen para los que la expresión FDL no es cero ("true") en el archivo especificado. Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Opción Efecto -subfocus <subenfoque> Usar el subenfoque especificado del enfoque de origen. -tags <etiqueta> [, <etiqueta> ...] Crear campos en el conjunto de datos de destino que correspondan solamente a los campos en el enfoque de origen que tiene las etiquetas especificadas. -type <tipo de conjunto de datos> Crear un conjunto de datos del tipo especificado en lugar de usar la extensión del archivo para determinar el tipo. Los tipos de conjuntos de datos válidos incluyen sas, spss, excel (.xls) y excelx (.xlsx). Para consultar una lista completa, utilice la opción -help. -xfields <campo> [, <campo> ...] Crear campos en el enfoque de destino que correspondan a todos los campos en conjunto de datos de origen, a excepción de los campos especificados. -xfields @<archivo de campos> Crear campos en el enfoque de destino que correspondan a todos los campos en el conjunto de datos de origen, a excepción de los campos enumerados en el archivo de campos (uno por línea). -xtags <etiqueta> [, <etiqueta> ...] Crear campos en el enfoque de destino que correspondan a todos los campos en el conjunto de datos de origen, a excepción de los campos que tienen las etiquetas especificadas. Además de estas opciones de línea de comandos, qsexportstat acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: Mediante Portrait Miner, se puede acceder a la mayoría de las funciones de qsexportstat mediante el cuadro de diálogo Exportar para otro programa . Ejemplos Crear un archivo SAS nuevo RetailTransAprilStore800.sas7bdat que contenga un subconjunto de registros (solo compras de la tienda 800) y solo campos de gasto a partir del enfoque RetailTransApril.ftr : qsexportstat -input RetailTransApril.ftr -output RetailTransAprilStore800.sas7bdat -fields "CustomerID, PurchaseDate, Store, Amount" -records "Store = \"800\"" También consulte qsdescribestat en la página 107 qsimportstat en la página 48 Guía de referencia del comando de creación de datos y TML 51 qsimportfocus qsimportfocus Sinopsis qsimportfocus -input <enfoque de origen> [-subfocus <subenfoque>] -output <enfoque de destino> [-force] -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo>> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-records <expresión FDL> | -records @<archivo FDL>] [-preservetypes] Descripción: Crear el enfoque de destino a partir de los datos en el enfoque de origen. No copiar metadata . Argumentos opcionales 52 Opción Efecto -fields <campo> [, <campo> ...] Crear campos en el enfoque de destino que correspondan únicamente a los campos especificados en el enfoque de origen. -fields @<archivo de campos> Crear campos en el enfoque de destino que correspondan únicamente a los campos en el enfoque de origen que se enumeran (uno por línea) en el archivo de campos. -force Consulte la La opción de línea de comandos -force en la página 24. -preservetypes Preservar los tipos de datos heredados de un enfoque creado con una versión anterior de Portrait Miner. -records <expresión FDL> Crear registros en el enfoque de destino que correspondan únicamente a los registros en el enfoque de origen para los que la expresión numérica FDL no es cero ("true"). -records @<archivo FDL> Crear registros en el enfoque de destino que correspondan únicamente a los registros en el enfoque de origen para los que la expresión FDL en el archivo especificado no es cero ("true"). -subfocus <subenfoque> Usar el subenfoque especificado del enfoque de origen. Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Opción Efecto -tags <etiqueta> [, <etiqueta> ...] Crear campos en el enfoque de destino que correspondan únicamente a los campos en el enfoque de origen que tienen las etiquetas especificadas. -xfields <campo> [, <campo> ...] Crear campos en el enfoque de destino que correspondan a todos los campos en el enfoque de origen excepto los campos especificados. -xfields @<archivo de campos> Crear campos en el enfoque de destino que correspondan a todos los campos en el enfoque de origen excepto los campos que se enumeran (uno por línea) en el archivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Crear campos en el enfoque de destino que correspondan a todos los campos en el enfoque de origen excepto los campos que tienen las etiquetas especificadas. Además de estas opciones de línea de comandos, qsimportfocus acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Para crear una copia de un enfoque que incluya metadata, debe utilizar qscopy. • El enfoque de destino es independiente del enfoque de origen, es decir, no comparte datos subyacentes. • Si el enfoque de origen se creó con una versión anterior de Portrait Miner, puede contener campos con tipos de datos heredados. Por defecto, qsimportfocus convierte dichos campos en campos con los datatypes de entero, real, fecha y secuencia estándares. Puede forzar a qsimportfocus a retener los tipos de datos originales en el enfoque de destino, al utilizar la opción -preservetypes. • Al utilizar Portrait Miner, se puede acceder a la mayoría de las funcionalidades de qsimportfocus a través del cuadro de diálogo Exportar como enfoque . Ejemplos Crear un nuevo enfoque RetailTransAprilStandardTypes.ftr que contenga todos los registros del enfoque RetailTransApril.ftr, pero convierta los campos con tipos de datos heredados a tipos de datos estándares: qsimportfocus -input RetailTransApril.ftr -output RetailTransAprilStandardTypes.ftr Crear un nuevo enfoque RetailTransAprilStore800.ftr, que contenga un subconjunto de registros (solo compras de la tienda 800) y solo campos de gastos, del enfoque RetailTransApril.ftr: qsimportfocus -input RetailTransApril.ftr -output RetailTransAprilStore800.ftr -fields "CustomerID, PurchaseDate, Store, Amount" -records "Store = \"800\"" Guía de referencia del comando de creación de datos y TML 53 Cómo Portrait Miner importa los tipos de base de datos Crear un nuevo enfoque, RetailTransApril2Customers.ftr, que contenga únicamente las transacciones para los clientes 20450000000036004 y 20450000000043009: qsimportfocus -records "strmember(CustomerID, \"20450000000036004\", \"20450000000043009\")" -input RetailTransApril.ftr -output RetailTransApril2Customers.ftr Cómo Portrait Miner importa los tipos de base de datos Importación a Portrait Miner desde una base de datos Portrait Miner asigna los siguientes tipos de base de datos a sus tipos de datos según el tamaño del tipo de base de datos y a la configuración de preferencias de las Bases de datos. Tipo de base de datos Scale (Escala) Precision (Precisión) representar preservar los enteros largos tipos como cadenas numéricos al importar char, char2, varchar, varchar2, nchar, nchar2, nvarchar, nvarchar2 cadena date, time, timestamp, datetime, smalldatetime fecha int, integer, tinyint, smallint, byteint, bit entero bigint false true real false false cadena true decimal, dec, numeric, number 54 Tipo de campo de Portrait Miner <0 15 > 15 > 15 cadena true real false real cadena Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Tipo de base de datos Scale (Escala) Precision (Precisión) decimal, dec, numeric, number 0 representar preservar los enteros largos tipos como cadenas numéricos al importar 0 real 10 > 10 false 15 entero false true real > 15 false false real > 15 true cadena > 10 cadena float, double, real decimal, dec, numeric, number Tipo de campo de Portrait Miner real >0 15 > 15 true false > 15 money smallmoney real real cadena true real false cadena real Nota: • En las filas marcadas con , puede haber pérdida de precisión. • En las filas marcadas con , los valores que sean demasiado largos para almacenar como enteros se convertirán a Null. Exportación de Portrait Miner a una base de datos Los tipos de base de datos que Portrait Miner exporta dependen de la base de datos de destino y el controlador ODBC. Portrait Miner sugiere un tipo adecuado para la base de datos que especifique, si bien el controlador ODBC interpreta esa sugerencia en uno de los tipos de esa base de datos. Formatos de fecha Cuando trabaja con archivos planos y expresiones FDL, puede especificar la forma en la que Portrait Miner debe interpretar o exportar las fechas y las horas, usando un formato de fecha estándar [consulte la sección Formatos de fecha estándar en la página 56] o un formato de fecha personalizado [consulte la sección Formatos de fechas personalizados en la página 56]. Guía de referencia del comando de creación de datos y TML 55 Formatos de fecha estándar Formatos de fecha estándar Nombre Formato de fecha Americano MM/DD/AAAA:hh:mm:ss, por ejemplo, 12/31/2000:13:36:59 Europeo DD/MM/AAAA:hh:mm:ss, por ejemplo, 31/12/2000:13:36:59 AMD AAAA/MM/DD:hh:mm:ss, por ejemplo, 2000/12/31:13:36:59 Nota: • Los tres formatos de fecha estándar también se pueden utilizar para fechas sin componente de hora y para horas puras ("fechas" con solo un componente de hora). Para fechas con solo horas o solo fechas, las partes de hora y fecha, respectivamente, son omitidas. • Los formatos Americano, Europeo, y AMD también incluyen datos en las formas MMDDAAAA, DDMMAAAA y AAAAMMDD respectivamente (solo para entradas). Formatos de fechas personalizados Puede especificar un formato de fecha personalizado mediante la utilización de códigos de caracteres especiales, cada uno comenzando con un signo de porcentaje %: Código Componente de fecha con formato %% El mismo signo de porcentaje: % %? Coincide con cualquier carácter %* Coincide con cualquier cantidad de caracteres; por ejemplo, para ignorar los caracteres finales, use %A/%m/%d%* %a El nombre del día en forma abreviada ("lu.", "ma.", ..., "do.") %A El nombre del día completo (lunes", "martes", ..., "domingo") %b El nombre del mes en forma abreviada ("en.", "febr.", ..., "dic.") %B El nombre del mes completo ("enero", "febrero", ..., "diciembre") %c (Entrada) Equivalente a "%a %b %e %T %Y" (Salida) La fecha y hora en la representación estándar para la ubicación actual %C 56 Equivalente a "%a %b %e %T %Z %Y" Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Código Componente de fecha con formato %d El día del mes, usando dos dígitos ("01", "02", ..., "31") %D Equivalente a %m/%d/%y %e El día del mes, en un solo dígito precedido por un espacio (" 1", " 2", ..., "31") %h Equivalente a "%b" %H La hora del día, usando el reloj de 24 horas ("00", "02", ..., "23") %I La hora del día, usando el reloj de 12 horas ("01", "02", ..., "12") %j El día del año, usando tres dígitos (fechas julianas) ("001", "002", ..., "366") %m El número del mes, usando dos dígitos ("01", "02", ..., "12") %M Los minutos de una hora, usando dos dígitos ("00", "01", ..., "59") %p "a.m." o "p.m." según corresponda %r Equivalente a %I:%M:%S %p %R Equivalente a %H:%M %S El segundo del minuto, usando dos dígitos ("00", "01", ..., "61") %T Equivalente a %H:%M:%S %x La fecha con formato según la preferencia de ordenación x %X Equivalente a "%x" %y Los años de un siglo, usando dos dígitos ("00", "01", ..., "99") %Y El año, usando cuatro dígitos %Z El nombre de la zona horaria de la ubicación actual Nota: • Para usar %D o %y, debe especificar el año de quiebre o un año futuro máximo (pero no ambos). Si configura un quiebre igual a un año válido Y, Portrait Miner interpretará los años de dos dígitos como años entre Y - 99 y Y. Por ejemplo, si configura las preferencias en 2077, Portrait Miner interpreta los años de dos dígitos 76, 77, y 78 como 2076, 2077, and 1978 respectivamente. Guía de referencia del comando de creación de datos y TML 57 Formatos de fechas personalizados Si configura un año máximo futuro igual a un valor positivo n y el año actual es A, Portrait Miner interpreta todos los años de dos dígitos como años entre Y + n - 99 y Y + n. Por ejemplo, si configura las preferencias en 50 y el año actual es 2002, Portrait Miner interpreta los años de dos dígitos 51, 52, y 53 como 2051, 2052, y 1953 respectivamente. • Si establece la escritura en la preferencia de formato local específico, los códigos "%a," "%A," "%b," "%B," "%C," "%p," "%x," "%X," y "%Z" podrían producir resultados distintos al mostrar las fechas (pero no al interpretarlas). • Así como /, cualquier otro carácter (salvo el separador de campo o el marcador nulo) puede utilizarse como separador en la fecha. • En los formatos de fecha que no tienen un componente de día o mes explícito, puede especificar uno por defecto utilizando el calificador de "día" o "mes". • Los códigos de caracteres especiales son los de la función de biblioteca C estándar strftime. Ejemplo R–1: Cadenas de formato de fecha Ejemplo de fecha Cadena de formato de fecha 02/04/2003 Europeo 27/10/1940 04/02/2003 Americano 10/27/1940 2003/04/02 AMD 1940/10/27 02-Apr-2003 %d-%b-%Y 27-Oct-1940 02 Apr 2003 ((%d %b %Y)) 27 Oct 1940 2003-04-02 13:25 ((%Y-%m-%d %H:%M)) 1940-10-27 08:23 2003-04-02:13:25 %Y-%m-%d:%H:%M 1940-10-27:08:23 2 Apr 2003 ((%e %b %Y)) 27 Oct 1940 April 2, 2003 ((%B %e, %Y)) 02/04/2003 13:25 ((%d/%m/%Y %H:%M)) 27/10/1940 08:23 58 Portrait Miner 7.1 Capítulo 4: Comandos para importar y exportar datos Ejemplo de fecha Cadena de formato de fecha 2003-04-02 13:25:15000000 ((%Y-%m-%d %H:%M:%S%*)) April 02, 2003 ((%B %d, %Y)) 2-Apr-2003 %e-%b-%Y 27-Oct-1940 02/04/03 (quiebre europeo=2010) 27/10/40 04/02/03 (quiebre americano=2010) 10/27/40 03/04/02 (quiebre AMD=2010) 40/10/27 02-Apr-03 (%d-%b-%y pivot=2010) 27-Oct-40 April 02, 03 ((%B %d, %y) pivot=2010) 2-Apr-03 (%e-%b-%y pivot=2010) 27-Oct-03 April 2, 03 ((%B %e, %y) pivot=2010) 01:25 PM ((%I:%M %p)) 08:23 AM 13:25 %H:%M 08:23 Guía de referencia del comando de creación de datos y TML 59 Capítulo Comandos para procesar enfoques En esta sección: • • • • • • • • • qssort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62 qsderive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 qsmeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66 qstrack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 qsselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 qsrenamefields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 qsexportmetadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78 qsimportmetadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78 qsupdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 5 qssort qssort Sinopsis qssort -input <enfoque de origen>> [-subfocus <subenfoque>] -output <enfoque de destino> [-force] {-keys <campo clave> [, <campo clave>] [, <campo clave>]| -key @<archivo clave>}} qssort-input <enfoque de origen> [-subfocus <subenfoque>] -check {-keys <campo clave> [, <campo clave>] [, <campo clave>]| -key @<archivo clave>}} Descripción: Clasifique los registros del enfoque de origen según los campos clave para producir el enfoque de destino. Alternativamente, compruebe que el enfoque de origen ya está clasificado. Argumentos opcionales Opción Efecto -force Consulte la La opción de línea de comandos -force en la página 24. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque de origen. Además de esta opción de línea de comandos, qssort acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Se pueden utilizar tres campos clave con qssort como máximo. • El uso que qssort hace del orden de comparación de Portrait Miner puede mostrar diferencias en algunos detalles respecto del orden de comparación usado por las bases de datos o las utilidades de clasificación de terceros. Aunque es importante que un enfoque esté clasificado, se debe comprobar el orden de la clasificación y, si es necesario, volver a clasificarlo utilizando qssort. • En general, es mucho más rápido comprobar el orden de la clasificación de un enfoque que clasificarlo. • En general, es ligeramente más rápido clasificar un enfoque si ya está casi clasificado. • Incluso cuando el enfoque (o subenfoque) contiene solamente una selección de registros, el enfoque de destino contiene todos los registros del enfoque de origen. • Si se utiliza la opción -verbose, qssort informa la cantidad de valores clave únicos y la cantidad de registros que contienen el valor clave duplicado más frecuente. • El comando qssort requiere un espacio temporal en disco equivalente al tamaño del enfoque de origen, y espacio para el enfoque de destino. 62 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques • El enfoque de destino es independiente del enfoque de origen, es decir, no comparte datos subyacentes. • Utilizando Portrait Miner, se puede acceder a la mayoría de las funciones de qssort mediante el asistente Ordenar enfoque . Ejemplos Comprobar que el enfoque RetailCustApril.ftr está clasificado según el campo CustomerID: qssort -check -input RetailCustApril.ftr -keys CustomerID Cree un nuevo enfoque, RetailTransAprilSorted.ftr, que contenga todos los registros del enfoque RetailTransApril.ftr, clasificado según el campo CustomerID: qssort -output RetailTransAprilSorted.ftr -input RetailTransApril.ftr -keys CustomerID qsderive Sinopsis qsderive -derivations <archivo de derivaciones> -input <enfoque de origen> [-subfocus <subenfoque>] [-macro <nombre>=<valor>[-macro <nombre>=<valor> ...] | -macro @<nombre>=<archivo de macro>] [-output <enfoque de destino>] [-force] -fields <campo> [, <campo> ...] | -fields @<archivo de campos>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos>] [-random <semilla entera>] [-warn] [-savexml] Descripción: Copiar todos los campos (por defecto) del enfoque de origen al enfoque de destino; derivar los campos en el enfoque de destino según las definiciones de campo en el archivo de derivaciones, que contiene instrucciones create o las representaciones XML correspondientes. Por defecto, anexar los campos derivados al enfoque de origen. Argumentos opcionales Comando Objetivo Opción Efecto -fields <campo> [, <campo>> ...] Derivar únicamente los campos especificados. -fields @<archivo de campos>> Derivar únicamente los campos que se enumeran (uno por línea) en el archivo de campos. -force Consulte la La opción de línea de comandos -force en la página 24. Guía de referencia del comando de creación de datos y TML 63 qsderive Comando Objetivo -macro <nombre>=<valor> Consulte la La opción de línea de comandos -macro en la página 25. -macro @<archivo de macros> Consulte la La opción de línea de comandos -macro en la página 25. -output <enfoque de destino> En lugar de anexar campos derivados al enfoque de origen, copiar el enfoque de origen al enfoque de destino y anexar los campos derivados al enfoque de destino. -random <semilla entera> Utilizar la semilla entera (en lugar de 0) para todas las funciones FDL de número aleatorio que aparezcan en expresiones de derivación. -savexml Además de derivar uno o más campos, escriba la(s) expresión(es) de la derivación en los formatos TML y XML en los archivos <salida>.tml y <salida>.xml, en el mismo directorio del enfoque de destino, donde <salida> es el nombre de base del enfoque de salida. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque de origen. -warn Si falla una derivación de campo, mostrar una advertencia y continuar derivando otros campos (en lugar de detenerse). -xfields <campo>> [, <campo> ...] Derivar todos los campos en el archivo de derivaciones excepto los campos especificados. -xfields @<archivo de campos> Derivar todos los campos en el archivo de derivaciones excepto los campos que se enumeran (uno por línea) en el archivo de campos. Además de estas opciones de línea de comandos, qsderive acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • El orden en que aparecen los campos derivados en el enfoque de destino es el orden en el que aparecen en el archivo de derivaciones. • Si se especifica un enfoque de destino, compartirá los datos subyacentes con el enfoque de origen. • XML para qsderive toma la forma de un elemento <derivations>, que contiene elementos <field>, cada uno de los cuales debe contener, a su vez, una expresión FDL en un elemento <fdl>. Cada elemento <fdl> puede incluir un atributo seed entero para especificar la semilla de número aleatorio para esa expresión FDL. • Puede utilizar el archivo XML que guardó qsderive mediante la opción -savexml como un archivo de derivaciones. 64 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques • Utilizando Portrait Miner, se puede acceder a la mayoría de las funciones de qsderive mediante el asistente Derivar campos . Ejemplo Dado el archivo de derivaciones, derivations-purchases.tml, que contiene lo siguiente: create TransMonth := month(PurchaseDate); create CashRecd := if PaymentMethod = "CA" then Amount else 0; aplicar estas derivaciones al enfoque RetailTransApril.ftr, para crear un nuevo enfoque, RetailTransAprilDeriv.ftr, que contenga todos los campos del enfoque RetailTransApril.ftr, más dos campos derivados: qsderive -derivations derivations-purchases.tml -input RetailTransApril.ftr -output RetailTransAprilDeriv.ftr Aplicar todas estas derivaciones, menos la primera, al enfoque RetailTransApril.ftr, para crear un nuevo enfoque RetailTransAprilDerivAllButFirstOne.ftr, que contenga todos los campos del enfoque RetailTransApril.ftr más todos los campos derivados, menos el primero: qsderive -xfields TransMonth -derivations derivations-purchases.tml -input RetailTransApril.ftr -output RetailTransAprilDerivAllButFirstOne.ftr Crear un nuevo enfoque,RetailCustAprilScored.ftr, que contenga todos los campos del enfoque RetailCustApril.ftr, más los campos de resultado que se crearon en Creador de scorecards de Decision Studio y se guardaron como un archivo QMML, derivations-score.qmml: qsderive -derivations derivations-score.qmml -input RetailCustApril.ftr -output RetailCustAprilScored.ftr Dado el archivo de derivaciones XML derivations-purchases.xml que contiene lo siguiente: <?xml version="1.0" encoding="UTF-8"?> <derivations xmlns="http://www.quadstone.com/xml"> <field name="TransMonth"> <fdl>month(PurchaseDate)</fdl> </field> <field name="CashRecd"> <fdl>if PaymentMethod = "CA" then Amount else 0</fdl> </field> <field name="Random"> <fdl seed="123">rndUniform()</fdl> </field> </derivations> aplicar estas derivaciones al enfoque RetailTransApril.ftr, para crear un nuevo enfoque, RetailTransAprilDeriv.ftr, que contenga todos los campos del enfoque RetailTransApril.ftr, más dos campos derivados: qsderive -derivations derivations-purchases.xml -input RetailTransApril.ftr -output RetailTransAprilDeriv.ftr También consulte Especificación de derivación para qsderive en la página 351 qstrack en la página 70 Guía de referencia del comando de creación de datos y TML 65 qsmeasure qsmeasure Sinopsis qsmeasure -aggregations <archivo de agregación> [, <archivo de agregación> ...] -input <enfoque de origen> -output <enfoque de destino> [-force] {-keys <campo clave> [, <campo clave>] [, <campo clave>] | -key @<archivo clave>} [-statistics <archivo de estadísticas> [, <archivo de estadísticas> ...]] [-library <archivo de funciones FDL> [, <archivo de funciones FDL> ...]] [-macro <nombre>=<valor> [-macro <nombre>=<valor> ...] | -macro @<nombre>=<archivo de macro>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] Descripción: Agregue registros en el enfoque de origen para producir campos en el enfoque de destino según las definiciones de campos en los archivos de agregación. Los archivos de agregaciones contienen instrucciones create o las representaciones XML correspondientes. Utilice los campos clave para identificar grupos de registros para agregación [consulte Uso de funciones de agregación y las cláusulas where y default en la página 154]. Argumentos opcionales Opción Efecto -fields <campo> [, <campo> ...] Considerar solo los campos especificados del enfoque de origen (para optimizar el rendimiento del comando evitando la consideración de los campos que no se utilizan). -fields @<archivo de campos> Considerar solo los campos del enfoque de origen que están enumerados (uno por línea) en el archivo de campos. -force Consulte la La opción de línea de comandos -force en la página 24. -library <archivo de funciones FDL> [, <archivo de funciones FDL> ...] Incluye definiciones de las funciones FDL [consulte Funciones definidas por el usuario en la página 192]. Es posible que las expresiones en los archivos de agregaciones involucren estas funciones. 66 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques Opción Efecto -macro <nombre>=<valor> Consulte la La opción de línea de comandos -macro en la página 25. -macro @<archivo de macros> Consulte la La opción de línea de comandos -macro en la página 25. -statistics <archivo de estadísticas> Calcular estadísticas para el enfoque de entrada según las definiciones en los archivos de [, <archivo de estadísticas> ...] estadísticas, que contienen instrucciones de cálculo [consulte Evaluación del enfoque de estadísticas: la instrucción de calcular en la página 158] o las representaciones XML correspondientes. Las expresiones en los archivos de agregaciones pueden hacer referencia a estas estadísticas. -tags <etiqueta> [, <etiqueta> ...] Tener en cuenta solamente los campos del enfoque de origen que tienen las etiquetas especificadas (para optimizar el rendimiento del comando al evitar tener en cuenta los campos no utilizados). -xfields <campo> [, <campo> ...] Considerar todos los campos del enfoque de origen, excepto los campos especificados (para optimizar el rendimiento del comando evitando la consideración de campos que no se utilizan). -xfields @<archivo de campos> Considerar todos los campos del enfoque de origen, excepto aquellos que estén enumerados (uno por línea) en el archivo de campos. -xtags <>tag> [, <etiqueta>> ...] Tener en cuenta todos los campos del enfoque de origen, excepto los campos que tienen la etiqueta especificada (para optimizar el rendimiento del comando al evitar tener en cuenta los campos no utilizados). Además de estas opciones de línea de comandos, qsmeasure acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • El enfoque de origen debe ordenarse según los campos clave [consulte qssort en la página 62]. No obstante, qsmeasure no comprueba si esto es así, y no emite una advertencia o un error si el enfoque no está ordenado correctamente. • El enfoque de destino contiene campos clave que corresponden a los campos clave en el enfoque de origen, seguidos de los campos agregados (en el mismo orden en el que aparecen en el archivo de agregaciones), seguidos por todos los campos derivados (también en el mismo orden en el que aparecen en el archivo de agregaciones). Para forzar la aparición de un campo agregado después de un campo derivado en el enfoque de destino, puede utilizarse una Guía de referencia del comando de creación de datos y TML 67 qsmeasure instrucción temporary para crear el campo de agregación, y luego derivar un campo desde allí. • El enfoque de destino es independiente del enfoque de origen, es decir, no comparte datos subyacentes. • Para calcular agregaciones que involucren los estados entre las transacciones en lugar de involucrar solamente los valores en los registros de transacciones, derive campos intermedios adecuados mediante qstrack antes de utilizar qsmeasure. • El XML para qsmeasure adopta la forma de un elemento de <aggregations>, que contiene elementos <field context="aggregation">, cada uno de los cuales, a su vez, debe contener una expresión TML en un elemento <fdl>. Se puede utilizar un elemento <by> para especificar los grupos, y un elemento <where> para filtrar los registros de entrada. • Utilizando Portrait Miner, se puede acceder a la mayoría de las funciones de qsmeasure mediante el asistente Agregar registros . Ejemplos Dado el archivo de agregaciones aggregations-purchases.tml, que contiene lo siguiente: create numberPurchases := count(); create averagePurchase := mean(Amount); create totalPointsRedeemed := sum(PointsRedeemed); create averagePointsPerPurchase := totalPointsRedeemed / numberPurchases; Aplique estas agregaciones y la derivación al enfoque RetailTransAprilSorted.ftr para crear el enfoque RetailAggregationsApril.ftr que contenga los campos CustomerID, numberPurchases, averagePurchase, totalPointsRedeemed y averagePointsPerPurchase: qsmeasure -aggregations aggregations-purchases.tml -input RetailTransAprilSorted.ftr -output RetailAggregationsApril.ftr -keys CustomerID Dado el archivo de funciones FDL fdl-functions-storeSplit.fdl, que contiene lo siguiente: function StoreSplitFunction( Store ) [ element_names = "0,800,600,700,300,400,100,500,900,Other" ] { case Store = "0000" : 1; Store = "0800" : 2; Store = "0600" : 3; Store = "0700" : 4; Store = "0300" : 5; Store = "0400" : 6; Store = "0100" : 7; Store = "0500" : 8; Store = "0900" : 9; default : 10; } Dado el archivo de agregaciones, aggregations-mostCommon.tml, que contiene lo siguiente: create mostCommonStore := mode(Store); create averageSpendInStore_ := mean(Amount) by StoreSplitFunction(Store); 68 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques Aplique estas agregaciones al enfoque RetailTransAprilSorted.ftr para crear el enfoque RetailStoreSplitsApril.ftr que contenga los campos CustomerID, mostCommonStore, averageSpendInStore_0, averageSpendInStore_800, averageSpendInStore_600, averageSpendInStore_700, averageSpendInStore_300, averageSpendInStore_400, averageSpendInStore_100, averageSpendInStore_500, averageSpendInStore_900 y averageSpendInStore_Other: qsmeasure -library fdl-functions-storeSplit.fdl -aggregations aggregations-mostCommon.tml -input RetailTransAprilSorted.ftr -output RetailStoreSplitsApril.ftr -keys CustomerID Alternativamente, dado el archivo XML de agregaciones aggregations-mostCommon.xml, que contiene lo siguiente: <?xml version="1.0" encoding="UTF-8"?> <aggregations xmlns="http://www.quadstone.com/xml"> <field name="mostCommonStore" context="aggregation"> <fdl>mode(Store)</fdl> </field> <field name="averageSpendInStore_" context="aggregation"> <fdl>mean(Amount)</fdl> <by>StoreSplitFunction(Store)</by> </field> </aggregations> aplique estas agregaciones al enfoque RetailTransAprilSorted.ftr para crear el enfoque RetailStoreSplitsApril.ftr que contenga los mismos campos del ejemplo anterior: qsmeasure -library fdl-functions-storeSplit.fdl -aggregations aggregations-mostCommon.xml -input RetailTransAprilSorted.ftr -output RetailStoreSplitsApril.ftr -keys CustomerID Dado el archivo de estadísticas statistics-amount.tml, que contiene lo siguiente: calculate averageAmount := mean(Amount); y dado el archivo de agregaciones aggregations-statistic.tml, que contiene lo siguiente: create averageSpend := mean(Amount); create bigSpender := averageSpend > STATISTIC.averageAmount; aplique esta agregación y derivación al enfoque RetailTransAprilSorted.ftr para crear el enfoque RetailRankApril1.ftr que contenga los campos CustomerID, averageSpend y bigSpender: qsmeasure -statistics statistics-amount.tml -aggregations aggregations-statistic.tml -input RetailTransAprilSorted.ftr -output RetailRankApril1.ftr -keys CustomerID Alternativamente, acelere la agregación al importar solamente los campos CustomerID y Amount desde el enfoque RetailTransAprilSorted.ftr: qsmeasure -fields "CustomerID, Amount" -statistics statistics-amount.tml -aggregations aggregations-statistic.tml -input RetailTransAprilSorted.ftr -output RetailRankApril2.ftr -keys CustomerID Guía de referencia del comando de creación de datos y TML 69 qstrack También consulte Especificación de agregación para qsmeasure en la página 349 qstrack Sinopsis qstrack -trackers <archivo de rastreo> [, <archivo de rastreo> ...] -input <enfoque de origen> -output <enfoque de destino> [-force]-key <campo clave> | -key @<archivo clave>[-statistics <archivo de estadísticas> [, <archivo de estadísticas> ...]] [-library <archivo de función FDL> [, <archivo de función FDL> ...]] [-macro <nombre>=<valor> [-macro <nombre>=<valor> ...] | -macro @<nombre>=<archivo de macro>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]]-xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] Descripción: Copiar todos los campos (por defecto) del enfoque de origen al enfoque de destino; derivar los campos en el enfoque de destino según las definiciones de campo en el archivo de rastreadores, que contiene instrucciones create o las representaciones XML correspondientes. Estas definiciones generalmente involucran variables de estado [consulte Variables en la página 190]. Utilizar el campo clave para identificar grupos de registros para rastrear el estado: qstrack restablece todas las variables de estado al inicio de un nuevo grupo. Argumentos opcionales Opción Efecto -fields <campo> [, <campo> ...] Considerar solo los campos especificados del enfoque de origen (para optimizar el rendimiento del comando evitando la consideración de los campos que no se utilizan). -fields @<archivo de campos> Considerar solo los campos del enfoque de origen que están enumerados (uno por línea) en el archivo de campos. -force Consulte la La opción de línea de comandos -force en la página 24. -library <archivo de funciones FDL> [, <archivo de funciones FDL> ...] Incluye definiciones de las funciones FDL [consulte Funciones definidas por el usuario en la página 192]. Las expresiones de los archivos de seguimiento pueden incluir estas funciones. 70 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques Opción Efecto -macro <nombre>=<valor> Consulte la La opción de línea de comandos -macro en la página 25. -macro @<archivo de macros> Consulte la La opción de línea de comandos -macro en la página 25. -statistics <archivo de estadísticas> Calcular estadísticas para el enfoque de entrada según las definiciones en los archivos de [, <archivo de estadísticas> ...] estadísticas, que contienen instrucciones de cálculo [consulte Evaluación del enfoque de estadísticas: la instrucción de calcular en la página 158] o las representaciones XML correspondientes. Las expresiones de los archivos de seguimiento pueden hacer referencia a estas estadísticas. -tags <etiqueta> [, <etiqueta> ...] Tener en cuenta solamente los campos del enfoque de origen que tienen las etiquetas especificadas (para optimizar el rendimiento del comando al evitar tener en cuenta los campos no utilizados). -xfields <campo> [, <campo> ...] Considerar todos los campos del enfoque de origen, excepto los campos especificados (para optimizar el rendimiento del comando evitando la consideración de campos que no se utilizan). -xfields @<archivo de campos> Considerar todos los campos del enfoque de origen, excepto aquellos que estén enumerados (uno por línea) en el archivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Considerar todos los campos del enfoque de origen, excepto los campos que tienen las etiquetas especificadas (para optimizar el rendimiento del comando al evitar la consideración de campos sin utilizar). Además de estas opciones de línea de comandos, qstrack acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • El orden en el que aparecen los campos derivados en el enfoque de destino es el orden en el que aparecen en el archivo de rastreadores. • El enfoque de origen se debe clasificar por medio del campo clave [consulte qssort en la página 62]. Sin embargo, qstrack no verifica que así sea, y no emite una advertencia ni un error si el enfoque no se clasifica correctamente. • El enfoque de destino es independiente del enfoque de origen, es decir, no comparte datos subyacentes. Guía de referencia del comando de creación de datos y TML 71 qstrack • XML para qstrack toma la forma de un elemento <trackers>, que contiene elementos <field context="tracker">, cada uno de los cuales debe contener, a su vez, una expresión FDL en un elemento <fdl>. Ejemplos Dado el archivo de rastreadores, trackers-monthlySpend.tml, que contiene lo siguiente: create monthlySpend := ( state currentMonth := null; state currentYear := null; state monthSpend := 0; if (currentMonth = month(PurchaseDate) and currentYear = year(PurchaseDate)) then (monthSpend := monthSpend + Amount) else (monthSpend := Amount); currentMonth := month(PurchaseDate); currentYear := year(PurchaseDate); monthSpend; ); aplicar estas derivaciones al enfoque RetailTransAprilSorted.ftr para crear un nuevo enfoque RetailTransAprilRunningSpend.ftr: qstrack -trackers trackers-monthlySpend.tml -key CustomerID -input RetailTransAprilSorted.ftr -output RetailTransAprilRunningSpend.ftr Como alternativa, dado el archivo de rastreadores XML trackers-monthlySpend.xml, que contiene lo siguiente: <?xml version="1.0" encoding="UTF-8"?> <trackers xmlns="http://www.quadstone.com/xml"> <field name="monthlySpend" context="tracker"> <fdl> state currentMonth := null; state currentYear := null; state monthSpend := null; if (currentMonth = month(PurchaseDate) and currentYear = year(PurchaseDate)) then (monthSpend := monthSpend + Amount) else (monthSpend := Amount); currentMonth := month(PurchaseDate); currentYear := year(PurchaseDate);path> monthSpend;h </fdl> </field> </trackers> aplicar estas derivaciones al enfoque RetailTransAprilSorted.ftr para crear un nuevo enfoque RetailTransAprilRunningSpend.ftr: qstrack -trackers trackers-monthlySpend.xml -key CustomerID -input RetailTransAprilSorted.ftr -output RetailTransAprilRunningSpend.ftr También consulte XML en Portrait Miner en la página 342 qsderive en la página 63 72 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques qsselect Sinopsis qsselect -selections <archivo de selecciones> -input <enfoque de origen> [-subfocus <subenfoque>] [-macro <nombre>=< valor>[-macro <nombre>=<valor> ...] | -macro @<nombre>=<archivo de macro>] [-output <enfoque de destino>>] [-force][-random <semilla entera>] [-savexml] [-selection <campo>] Descripción: Copiar todos los campos (por defecto) del enfoque de origen en el enfoque de destino; derivar un campo numérico en el enfoque de destino según la definición del primer campo (por defecto) en el archivo de selecciones, que es un archivo que contiene instrucciones create o un archivo XML correspondiente. Por defecto, anexar el campo derivado al enfoque de origen. Aplicar una selección de registro al nuevo campo; seleccionar únicamente los registros con el valor 1. Argumentos opcionales Opción Efecto -force Consulte la La opción de línea de comandos -force en la página 24. -macro <nombre>=<valor> Consulte la La opción de línea de comandos -macro en la página 25. -macro @<archivo de macros> Consulte la La opción de línea de comandos -macro en la página 25. -output <enfoque de destino> En lugar de anexar campos derivados al enfoque de origen, copiar el enfoque de origen al enfoque de destino y anexar los campos derivados al enfoque de destino. -random <semilla entera> Utilizar la semilla entera (en lugar de 0) para todas las funciones FDL de número aleatorio que aparezcan en expresiones de derivación. -savexml Además de derivar uno o más campos y aplicar una selección, escriba la(s) expresión(es) de la derivación del archivo de selecciones en los formatos TML y XML en los archivos <salida>.tml y <salida>.xml, en el mismo directorio del enfoque de destino, donde <salida> es el nombre de base del enfoque de salida. -selection <campo> En lugar de usar la definición del primer campo en el archivo de selecciones, usar la definición del campo especificado. Guía de referencia del comando de creación de datos y TML 73 qsselect Opción Efecto -subfocus <subenfoque> Usar el subenfoque especificado del enfoque de origen. Además de estas opciones de línea de comandos, qsselect acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Comúnmente, las expresiones de derivación en el archivo de selecciones son aplicaciones de operadores relacionales o lógicos, que producen los valores 1 para "true" y 0 para "false". En tales casos, qsselect selecciona aquellos registros para los que la expresión lógica es verdadera. • Si se especifica un enfoque de destino, compartirá los datos subyacentes con el enfoque de origen. • El XML para qsselect adopta la forma de un elemento de <selections>, que contiene elementos <field context="selection">, cada uno de los cuales, a su vez, debe contener una expresión FDL en un elemento <fdl>. • Puede usar el archivo XML que guardó qsselect como un archivo de selecciones mediante la opción -savexml. Ejemplos: Dado el archivo de selecciones selections-sixmonth.tml, que contiene lo siguiente: create lastSixMonths := countwholemonths(PurchaseDate, #1999/07/01) < 6; aplique esta selección al enfoque RetailTransApril.ftr: qsselect -selections selections-sixmonth.tml -input RetailTransApril.ftr -output RetailTransApril6Months.ftr Dado el archivo de selecciones selections-random.tml, que contiene lo siguiente: create random := rndUniform() < 0.1; aplique esta selección para seleccionar el 10 % de los registros en el enfoque RetailTransApril.ftr, con una semilla conocida (12345678), para permitir que se seleccione la misma serie de registros en aplicaciones posteriores: qsselect -selections selections-random.tml -random 12345678 -input RetailTransApril.ftr -output RetailTransAprilSampleSelect.ftr Alternativamente, dado el archivo XML de selecciones selections-random.xml, que contiene lo siguiente: <?xml version="1.0" encoding="UTF-8"?> <selections xmlns="http://www.quadstone.com/xml"?> <field name="random" context="selection"> <fdl seed="12345678">rndUniform() < 0.1</fdl> </field> </selections> 74 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques Aplique esta selección para seleccionar el mismo 10% de los registros en el enfoque RetailTransApril.ftr utilizando la misma semilla: qsselect -selections selections-random.xml -input RetailTransApril.ftr -output RetailTransAprilSampleSelect.ftr También consulte Especificación de selección para qsselect en la página 352 qsrenamefields Sinopsis qsrenamefields -input <enfoque de origen> {-map <nombre anterior>=<nombre nuevo> | -map @<archivo de mapeo de entrada>} [{-map <nombre anterior>=<nombre nuevo> | -map @<archivo de mapeo de entrada>} ...] [-output <enfoque de destino>] [-force] [-invert] [-mapping <archivo de mapeo de salida>] qsrenamefields -input <enfoque de origen> [-map QSCompliant] [-output <enfoque de destino>] [-force] [-invert] [-mapping <archivo de mapeo de salida>] Descripción: renombrar los campos del enfoque de origen mediante la aplicación de mapeos de <nombre anterior>=<nombre nuevo> y mapeos en archivos de mapeo de entrada. Alternativamente, renombrar los campos en el enfoque de origen a archivos únicos y equivalentes que sean compatibles con Portrait Miner, mediante un algoritmo incorporado . Argumentos opcionales Comando Objetivo -force Consulte la La opción de línea de comandos -force en la página 24. -invert Invertir el sentido de los mapeos de nombre de campo. Guía de referencia del comando de creación de datos y TML 75 qsrenamefields Comando Objetivo -mapping <archivo de mapeo de salida> Crear un archivo XML de mapeo, que describa el mapeo real utilizado desde los nombres de archivo anteriores a los nuevos. Se puede utilizar este archivo como un archivo de mapeo de entrada para qsrenamefields. Junto a la opción -invert, se puede utilizar luego un mapeo inverso de nombre de campo incluso cuando el mapeo original campo-nombre sea un algoritmo (y no necesariamente de uno a uno). -output <enfoque de destino> En lugar de renombrar directamente los campos en el enfoque de origen, copiar el enfoque de origen al enfoque de destino y renombre los campos en el enfoque de destino. Además de estas opciones de línea de comandos, qsrenamefields acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Omitir el argumento -map completamente tiene el mismo efecto que especificar -map QSCompliant. • Un archivo de mapeo de entrada tiene formato XML o contiene pares <nombre antiguo>=<nombre nuevo> en líneas sucesivas del archivo. • Si se utiliza más de un argumento -map, qsrenamefields implementa los mapeos de nombre de campo en el orden que aparecen en la línea de comandos. • Si se intenta renombrar los campos y alguno se repite, qsrenamefields se lo advertirá y no realizará la acción. • Si se especifica un enfoque de destino, compartirá los datos subyacentes con el enfoque de origen. • No se puede renombrar un campo más de una vez invocando una sola vez el comando. • Si el enfoque de origen incluye subenfoques, qsrenamefields renombra los campos en toda la jerarquía de los subenfoques. • El XML para qsrenamefields adopta la forma de un elemento <mappingset> que contiene elementos <map>, cada uno de los cuales debe contener un elemento <name> y <alias>. • Dado un enfoque producido por qsimportdb, que puede incluir nombres de campos que no sean compatibles con Portrait Miner, se puede utilizar qsrenamefields (con -map QSCompliant) para convertir el enfoque en uno que se pueda utilizar en Decision Studio o con otros comandos de creación de datos. • Es posible acceder a algunas de las funciones de qsrenamefields mediante Visor de Tablas en Decision Studio o mediante el cuadro de diálogo Cambiar nombres de campos disponible en Portrait Miner . Ejemplos 76 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques Crear un enfoque, RetailCustAprilRenamed1.ftr, con el campo StartDate renombrado como Initialized, Age renombrado como CurrentAge, y Gender renombrado como Sex: qsrenamefields -map StartDate=Initialized -map Age=CurrentAge -map Gender=Sex -input RetailCustApril.ftr -output RetailCustAprilRenamed1.ftr Alternativamente, dado el archivo de mapeo de entrada mapping-file.txt, con el siguiente contenido: StartDate=Initialized Age=CurrentAge Gender=Sex implementar este archivo de mapeo para crear el enfoque RetailCustAprilRenamed2.ftr con el campo StartDate renombrado como Initialized, Age renombrado como CurrentAge, y Gender renombrado como Sex: qsrenamefields -map @mapping-file.txt -input RetailCustApril.ftr -output RetailCustAprilRenamed2.ftr o, alternativamente, dado el archivo XML de mapeo de entrada mapping-file.xml, con el siguiente contenido: <?xml version="1.0" encoding="UTF-8"?> <mappingset xmlns="http://www.quadstone.com/xml"> <map> <name>StartDate</name> <alias>Initialized</alias> </map> <map> <name>Age</name> <alias>CurrentAge</alias> </map> <map> <name>Gender</name> <alias>Sex</alias> </map> </mappingset> implementar este archivo de mapeo para crear el enfoque RetailCustAprilRenamed2.ftr con el campo StartDate renombrado como Initialized, Age renombrado como CurrentAge, y Gender renombrado como Sex: qsrenamefields -map @mapping-file.xml -input RetailCustApril.ftr -output RetailCustAprilRenamed2.ftr Crear un enfoque RetailCustAprilQSCompliant.ftr con nombres de campos que sean compatibles con Portrait Miner: qsrenamefields -input RetailCustApril.ftr -output RetailCustAprilQSCompliant.ftr También consulte Especificación de mapeo del nombre de campo para qsrenamefields en la página 356 Guía de referencia del comando de creación de datos y TML 77 qsexportmetadata qsexportmetadata Sinopsis qsexportmetadata -input <enfoque de origen> [-output <archivo de metadata>] Descripción: Exportar metadata del enfoque de origen, que incluye el historial del enfoque, la creación de rangos, los comentarios, las derivaciones, las interpretaciones, las selecciones de registros, la estructura de subenfoque y el subenfoque por defecto. Por defecto, escribir la información en una salida estándar. Argumentos opcionales Opción Efecto -output <archivo de metadata de salida> Crear este archivo de metadata en lugar de escribir la salida estándar. Además de esta opción de línea de comandos, qsexportmetadata acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • La salida de metadata de qsexportmetadata es un formato de archivo basado en XML [consulte Especificación de metadatos para qsimportmetadata en la página 342]. • Mediante Portrait Miner, se puede acceder a las funciones de qsexportmetadata mediante el cuadro de diálogo Exportar metadata . Ejemplos Crear un nuevo archivo XML RetailTransApril.xml que contenga la metadata del enfoque RetailTransApril.ftr: qsexportmetadata -input RetailTransApril.ftr -output RetailTransApril.xml También consulte qsimportmetadata en la página 78 qsimportmetadata Sinopsis qsimportmetadata -input <enfoque de origen> -metadata <archivo de metadata>[-output <enfoque de destino>] [-force] [-details <tipo> [, <tipo> ...] -fields <campo> [, <campo> ...] | -fields @<archivo de campos>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos>] [-dryrun] [-warn] 78 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques Descripción: Importar metadata, que incluye creación de rangos, comentarios, derivaciones, interpretaciones, selecciones de registros, estructura de subenfoque y subenfoque por defecto del archivo de metadata al enfoque de origen. Argumentos opcionales Opción Efecto -details <tipo> [, <tipo> ...] Importar los tipos especificados de metadata, que pueden incluir rangos, comentarios, derivaciones, historial, interpretaciones, selecciones, iniciar (subenfoque por defecto) y subenfoques (estructura de subenfoques). Las interpretaciones categóricas se clasifican como creaciones de rangos, no interpretaciones. Si esta opción no está disponible, se importan todos los tipos de metadata (excepto historial). -dryrun No importar metadata, sino visualizar la información sobre la metadata que se habría importado. -fields <campo> [, <campo> ...] En lugar de importar metadata de campo de todos los campos, importar metadata solamente de los campos especificados. -fields @<archivo de campos> En lugar de importar metadata de campo de todos los campos, importar metadata solamente de los campos enumerados en el archivo de campos (uno por línea). -force Consulte la La opción de línea de comandos -force en la página 24. -output <enfoque de destino> En lugar de implementar directamente la metadata al enfoque de origen, copiar el enfoque de origen al enfoque de destino e implementar la metadata al enfoque de destino. -warn En lugar de cancelar la operación si no es posible importar toda la metadata, emitir una advertencia e intentar importar la metadata restante. -xfields <campo> [, <campo> ...] Importar metadata de campo de todos los campos, a excepción de los campos especificados. -xfields @<archivo de campos> Importar metadata de campo de todos los campos, a excepción de los que están enumerados en el archivo de campos (uno por línea). Además de estas opciones de línea de comandos, qsimportmetadata acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Guía de referencia del comando de creación de datos y TML 79 qsimportmetadata Nota: • Si se importa el historial, y el archivo de metadata incluye metadata del historial que no está vacía, qsimportmetadata sustituye la metadata del historial en el enfoque; si la metadata del historial en el archivo de metadata no se encuentra o está vacía, qsimportmetadata no sustituye la metadata del historial en el enfoque. • Si se especifica un enfoque de destino, compartirá los datos subyacentes con el enfoque de origen. • El archivo de metadata utiliza un formato de archivo basado en XML [consulte Especificación de metadatos para qsimportmetadata en la página 342]. El XML de metadata para qsimportmetadata adopta la forma de un elemento de <metadata> que contiene elementos de <focus>, los cuales pueden contener elementos de <comment>, <history>, <focus> anidado y <field>. Los elementos de <field> pueden contener elementos de <comment>, <binning>, <recordselection> y <fdl>. • Si se importa un rango categórico a un campo que no tiene una interpretación categórica, qsimportmetadata primero interpreta que el campo es categórico y crea categorías básicas a partir de los valores que contiene el campo (y un rango denominado "nodo sin nombre"). Si las categorías básicas en el rango importado hacen referencia a valores a los que las categorías básicas del campo no hacen referencia, qsimportmetadata agrega estos valores como categorías básicas. Finalmente, agrega las categorías (si existen) desde el rango importado directamente a continuación de las categorías básicas del campo (a menos que el rango importado tenga el mismo conjunto de categorías básicas que el campo, en cuyo caso qsimportmetadata omite el primer nivel del rango importado y agrega el resto de los niveles directamente a continuación de las categorías básicas del campo). • Si se importa un rango categórico a un campo con interpretación categórica, y el rango importado contiene un elemento <category> como mínimo, qsimportmetadata borra la interpretación categórica en el campo (y elimina todos los rangos categóricos existentes en el campo) antes de importar el rango. (Si el rango importado no contiene elementos <category>, qsimportmetadata no realiza acción alguna). • Si importa una estructura de subenfoque, el subenfoque recién creado hereda automáticamente atributos de campo (como creación de rangos y candidatos de análisis) del subenfoque principal. Esto ocurre incluso si no se especifican los atributos de manera explícita en la definición de subenfoque, porque estos se establecen en el proceso de aplicar la estructura del subenfoque. • Un subenfoque definido en el archivo de metadata tiene prioridad sobre un subenfoque con el mismo nombre en el archivo de origen, por lo que se sobrescribe cualquier metadata existente asociada con dicho enfoque. • Utilizando Portrait Miner, se puede acceder a la mayoría de las funciones de qsimportmetadata mediante el cuadro de diálogo Importar metadata para enfoque . Ejemplos Dado el archivo de metadata de enfoque metadata-fieldfocus.xml, con el siguiente contenido: <?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://www.quadstone.com/xml"> <focus> <comment>This focus was created for the Retail Analysis project.</comment> <field name="Age"> <comment>Imported from database field DOB in CUSTINFO.</comment> </field> 80 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques <field name="Gender"> <comment>Imported from CUSTINFO:SEX, mapping 1="M" and 2="F".</comment> </field> </focus> </metadata> importar este archivo de metadata para crear un enfoque RetailCustAprilCommented2.ftr, que contenga comentarios de campo y un comentario del enfoque: qsimportmetadata -metadata metadata-fieldfocus.xml -input RetailCustApril.ftr -output RetailCustAprilCommented2.ftr Otra opción es importar el mismo archivo de metadata para crear un enfoque RetailCustAprilCommented3.ftr, con un comentario de campo solo en el campo Age: qsimportmetadata -fields Age -metadata metadata-fieldfocus.xml -input RetailCustApril.ftr -output RetailCustAprilCommented3.ftr Dado el archivo de metadata de enfoque metadata-focushtml.xml, con los siguientes contenidos: <?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://www.quadstone.com/xml"> <focus> <comment xhtml="true"> <div> This focus was created for the Retail Analysis project.<br/> An audit is available on the <a href="http://intranet.company.com/audits"> intranet</a>. </div> </comment> </focus> </metadata> importe este archivo de metadata para crear un enfoque RetailCustAprilCommented4.ftr, que contenga un comentario de enfoque con formato HTML: qsimportmetadata -metadata metadata-focushtml.xml -input RetailCustApril.ftr -output RetailCustAprilCommented4.ftr Dado el archivo de metadata de enfoque metadata-catbinning1.xml, con los siguientes contenidos: <?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://www.quadstone.com/xml"> <field name="MaritalStatus"> <binning> <categorical> <categories> <category name="Single" levelname="Summarized"> <category name="Single" value="1" levelname="Detail"/> </category> <category name="Married"> <category name="Married" value="2"/> </category> <category name="Other"> <category name="Divorced" value="3"/> <category name="Widowed" value="4"/> Guía de referencia del comando de creación de datos y TML 81 qsupdate <category name="Separated" value="5"/> </category> </categories> </categorical> </binning> </field> </metadata> importe este archivo de metadata para crear un enfoque Lion1.ftr, en el que MaritalStatus tiene un rango categórico con dos niveles (uno de ellos denomina las categorías de base y el otro fusiona tres categorías): qsimportmetadata -metadata metadata-catbinning1.xml -input Lion.ftr -output Lion1.ftr Dado el archivo de metadata de enfoque metadata-catbinning2.xml, con los siguientes contenidos: <?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://www.quadstone.com/xml"> <field name="SRVOverallSatisfaction"> <binning> <categorical> <categories> <category name="Very Dissatisfied" value="VD"/> <category name="Dissatisfied" value="D"/> <category name="Neutral" value="N"/> <category name="Fairly Satisfied" value="FS"/> <category name="Very Satisfied" value="VS"/> </categories> </categorical> </binning> </field> </metadata> importe este archivo de metadata para crear un enfoque Lion2.ftr, en el que SRVOverallSatisfaction tiene un rango categórico con un orden particular de las categorías, desde "Muy insatisfecho" hasta "Muy satisfecho": qsimportmetadata -metadata metadata-catbinning2.xml -input Lion1.ftr -output Lion2.ftr También consulte qsexportmetadata en la página 78 qsupdate Sinopsis qsupdate -from <enfoque de plantilla> -to <enfoque de destino> [-force] Descripción: Aplica la metadata del enfoque que está en el enfoque de plantilla al enfoque de destino e incluye las definiciones de subenfoques y campos derivados, además de cualquier interpretación de campo, rango y selecciones de registro. Argumentos opcionales 82 Portrait Miner 7.1 Capítulo 5: Comandos para procesar enfoques Opción Efecto -force Consulte la La opción de línea de comandos -force en la página 24. Además de esta opción de línea de comando, qsupdate acepta las opciones comunes de todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • El enfoque de destino no puede tener ninguna interpretación de campo, rango ni selección de registro existentes. • Si el enfoque de plantilla y el enfoque de destino tienen diferentes nombres de campo o tipos de datos, es posible que qsupdate no pueda copiar algunos aspectos de la metadata del enfoque de plantilla. • Este comando de creación de datos es obsoleto: en cambio, utilice qsexportmetadata y qsimportmetadata. Ejemplo Aplique derivaciones, interpretaciones, rangos y selecciones de registro del enfoque RetailCustApril.ftr previamente procesado al enfoque RetailCustMay.ftr recién importado : qslink -from RetailCustMay.ftr -to RetailCustMayUpdated.ftr qsupdate -from RetailCustApril.ftr -to RetailCustMayUpdated.ftr Guía de referencia del comando de creación de datos y TML 83 Capítulo Comandos para combinar enfoques En esta sección: • Acerca de la combinación de enfoques . . . . . . . . . . . . . .86 • qsjoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 • qsmerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90 6 Acerca de la combinación de enfoques Acerca de la combinación de enfoques Portrait Miner ofrece dos formas de combinar los campos de múltiples enfoques para crear uno nuevo, el primero ("focus join") es una variante de un left join. Se puede utilizar la unión de enfoques en Portrait Miner o a través del comando de creación de datos qsjoin de Portrait Miner. El segundo método utiliza Decision Studio para importar campos desde un enfoque en una variante de un left join de dos tablas. También se pueden combinar los registros de varios enfoques en Portrait Miner o a través del comando de creación de datos qsmerge de Portrait Miner. También consulte dblookup en la página 318 qsjoin Sinopsis qsjoin -input <enfoque primario> [-subfocus <subenfoque>] {-keys <campo clave> [, <campo clave>] [, <campo clave>] | -key @<archivo clave>} [-output <enfoque de destino>] [-force] [-equalnulls] [-importmeta] [-onetoone] [-match <prefijo>] [-unmatched <prefijo>] -join <enfoque secundario> [ -subfocus <subenfoque>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-join <enfoque secundario> [ -subfocus <subenfoque>] -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] ...] Descripción: Une campos de los enfoques secundarios con el enfoque primario, haciendo coincidir los registros mediante el uso de los campos clave. Por defecto, una todos los campos que no sean campos clave de los enfoques secundarios. A menos que se utilice la opción -onetoone, qsjoin realiza de forma eficaz una serie de uniones externas de izquierda (en las que el enfoque primario es la tabla de la izquierda) al incorporar los campos de cada uno de los enfoques secundarios de a uno a la vez. Los valores clave de un registro del enfoque primario identifican de forma única un registro correspondiente de cada uno de los enfoques secundarios (en los que haya uno). 86 Portrait Miner 7.1 Capítulo 6: Comandos para combinar enfoques Argumentos opcionales Opción Efecto -equalnulls Al hacer coincidir los registros, se debe tratar el valor nulo de un campo clave como un valor ordinario (es decir, considerar a todos los casos del valor nulo como iguales entre sí, pero diferentes de todos los otros valores). -fields <campo> [, <campo> ...] En lugar de unir todos los campos del enfoque secundario, une solo los campos especificados, -fields @<archivo de campos> En lugar de unir todos los campos del enfoque secundario, se deben unir solamente los campos especificados (uno por línea) en el archivo de campos. -force Consulte la La opción de línea de comandos -force en la página 24. Esto también afecta los enfoques creados mediante el uso de la opción -unmatched. -importmeta Importar metadata del campo de los enfoques secundarios. -match <prefijo> Para cada enfoque secundario, se debe crear un campo de enteros adicional en el enfoque de salida, que contiene el valor 1 para los registros que incluyen datos del enfoque secundario y el valor 0 para todos los otros registros. Se debe utilizar el prefijo dado junto con el nombre del enfoque secundario para denominar al campo. -onetoone En lugar de realizar una unión externa de izquierda, intente realizar una coincidencia uno a uno de los grupos de registros con las mismas claves. -output <enfoque de destino> En lugar de unir campos al enfoque primario, copie el enfoque primario en el enfoque de destino y luego una los campos con el enfoque de destino. -subfocus <subenfoque> Utilice los subenfoques especificados del enfoque primario o secundario mencionado en último lugar en la línea de comando (mediante el uso de -input o -join). -tags <etiqueta> [, <etiqueta> ...] En lugar de unir todos los campos del enfoque secundario, una solamente los campos que tienen las etiquetas especificadas. -unmatched <prefijo> Para cada enfoque secundario, se debe crear un enfoque de salida alternativo preservando los Guía de referencia del comando de creación de datos y TML 87 qsjoin Opción Efecto registros del enfoque secundario cuyos campos clave no coinciden con los registros del enfoque primario. Utilice el prefijo dado junto con el nombre del enfoque secundario para denominar el enfoque de salida alternativo. -xfields <campo> [, <campo> ...] Una todos los campos del enfoque, excepto los campos especificados. -xfields @<archivo de campos> Una todos los campos del enfoque, excepto los campos especificados (uno por línea) en el archivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Una todos los campos del enfoque, excepto los campos que tienen las etiquetas especificadas. Además de estas opciones de línea de comando, qsjoin acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Para cada campo clave nombrado, todos los campos de ese nombre en los enfoques primarios y secundarios deben ser de un tipo compatible, es decir, todos campos de secuencia, todos campos de fecha o todos campos numéricos. • Los enfoques primarios y secundarios deben estar clasificados según los campos clave [consulte qssort en la página 62]. Si los enfoques no están clasificados de forma apropiada, se produce un fallo en qsjoin y se envía un mensaje de error a tal efecto. • En el caso de una unión externa de izquierda (el tipo de unión predeterminado de qsjoin), dos registros de un enfoque secundario no pueden compartir las mismas claves. • En el caso de una unión externa de izquierda (el tipo de unión predeterminado de qsjoin), si un enfoque secundario no contiene ningún registro que corresponda a un registro dado del enfoque primario, qsjoin utiliza un registro nulo en su lugar. • En el caso de una unión externa de izquierda (el tipo de unión predeterminado para qsjoin), si más de un registro del enfoque primario tienen el mismo conjunto de claves, se unen copias de los registros correspondientes (si los hay) de los enfoques secundarios con cada uno de estos registros. • Si se utiliza la opción -onetoone, para cada conjunto de registros del enfoque primario que comparten una combinación determinada de valores de campos clave, qsjoin intenta unir campos de registros sucesivos de un enfoque secundario que comparten la misma combinación de valores de campos clave, de forma tal que los registros coincidan uno a uno Si, para una clave determinada, hay menos registros en un enfoque secundario que en un enfoque primario, qsjoin utiliza registros nulos en lugar de perder registros del enfoque secundario. Si, para una clave determinada, hay más registros en un enfoque secundario que en un enfoque primario, qsjoin utiliza los registros excedentes del enfoque secundario como no coincidentes. Si se utiliza la opción -unmatched, qsjoin preserva estos registros en un enfoque de salida alternativo. • Si, de alguna otra manera, la operación de unión da por resultado nombres de campo duplicados, qsjoin cambiará el nombre de los campos según sea necesario al agregarles sufijos numéricos. 88 Portrait Miner 7.1 Capítulo 6: Comandos para combinar enfoques • Si se especifica un enfoque de destino, este comparte datos subyacentes con el enfoque primario (pero independientemente del enfoque secundario). • Al hacer coincidir los registros, qsjoin generalmente trata a cada caso del valor nulo de un campo clave como un valor nuevo y diferente: un registro con el valor nulo de un campo clave nunca corresponde a un registro de otro enfoque. Se puede anular este comportamiento mediante el uso de la opción -equalnulls. • En el caso de la compatibilidad con versiones anteriores, si se especifica solo un enfoque secundario y se utiliza la opción -match o -unmatched, el nombre del enfoque secundario no se utiliza para nombrar el campo de coincidencia ni el enfoque de salida alternativo. • Utilizando Portrait Miner, se puede acceder a la mayoría de las funciones de qsjoin mediante el asistente Unir campos con el enfoque. . Ejemplos Crear un enfoque RetailAprilAnalysis1.ftr combinando registros de los enfoques RetailCustApril.ftr y RetailAggregationsApril.ftr: qsjoin -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -keys CustomerID -output RetailAprilAnalysis1.ftr Otra opción es agregar solo los campos numberPurchases y totalAmount del enfoque RetailAggregationsApril.ftr: qsjoin -fields numberPurchases,totalAmount -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -keys CustomerID -output RetailAprilAnalysis2.ftr Crear el enfoque RetailAprilAnalysis3.ftr combinando registros de los enfoques RetailCustApril.ftr, RetailAggregationsApril.ftr, y RetailAggregationsMay.ftr: qsjoin -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -join RetailAggregationsMay.ftr -keys CustomerID -output RetailAprilAnalysis3.ftr Repetir el paso anterior y escribir cualquier registro de transacción sin coincidencia en el enfoque unmatchedRetailAggregationsApril.ftr o unmatchedRetailAggregationsMay.ftr: qsjoin -unmatched unmatched -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -join RetailAggregationsMay.ftr -keys CustomerID -output RetailAprilAnalysis4.ftr Repetir el paso anterior, uniendo solamente un subconjunto de los campos de los enfoques secundarios: qsjoin -unmatched unmatched -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -fields numberPurchasesApr,totalAmountApr -join RetailAggregationsMay.ftr -fields numberPurchasesMay,totalAmountMay -keys CustomerID -output RetailAprilAnalysis5.ftr También consulte qsmerge en la página 90 Guía de referencia del comando de creación de datos y TML 89 qsmerge qsmerge Sinopsis qsmerge -input <enfoque primario> [-subfocus <subenfoque>] {-keys <campo clave> [, <campo clave>] [, <campo clave>] | -key @<archivo clave>} [-equalnulls] -output <enfoque de destino> [-force] [-nodups] -merge <enfoque secundario> [ -subfocus <subenfoque>][-merge <enfoque secundario> [ -subfocus <subenfoque>] ...] Descripción Combina registros de los enfoques primarios y secundarios al intercalarlos para crear el enfoque de destino, de manera tal que se mantengan ordenados según los campos clave [consulte qssort en la página 62]. Argumentos opcionales Opción Efecto -equalnulls Al hacer una prueba para detectar claves duplicadas, trate el valor null de un campo clave como un valor ordinario (es decir, considere a todos los casos del valor nulo como iguales entre ellos, pero diferentes a todos los otros valores). -force Consulte la La opción de línea de comandos -force en la página 24. -nodups Evite duplicar valores de campos clave: si dos o más registros comparten valores de campos clave, retenga el primero de esos registros del primer enfoque para contener dicho registro (tratando los enfoques en el siguiente orden: primario, secundario mencionado en primer lugar, etc.); descarte el resto de los registros que tienen los mismos valores de campos clave. -subfocus <subenfoque> Utilice los subenfoques especificados del enfoque primario o secundario mencionado en último lugar en la línea de comando (mediante el uso de -input o -merge). Además de estas opciones de línea de comando, qsmerge acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. 90 Portrait Miner 7.1 Capítulo 6: Comandos para combinar enfoques Nota: • Los enfoques primarios y secundarios deben estar clasificados según los campos clave [consulte qssort en la página 62]. Si los enfoques no están clasificados de forma apropiada, se produce una falla en qsmerge y se envía un mensaje de error a tal efecto. • Los campos correspondientes en los enfoques primarios y secundarios (identificados por nombre) deben ser exactamente del mismo tipo, pero no necesariamente deben estar ordenados de la misma manera. • El enfoque de destino contiene el mismo conjunto de campos que el enfoque primario, ordenado de la misma manera. Si un enfoque secundario contiene campos que no están en el enfoque primario, qsmerge los ignora. Si el enfoque primario contiene campos que no están en un enfoque secundario, qsmerge utiliza el valor nulo en el lugar de los valores que faltan en el enfoque secundario. • Si dos o más registros comparten los mismos valores de campos clave, aquellos del enfoque primario aparecen primero en el enfoque de destino, seguidos por aquellos de cada enfoque secundario de a uno a la vez. A menos que se utilice la opción -nodups, la operación de combinación no elimina ningún registro que tenga claves duplicadas. • Al utilizar el mismo enfoque dos veces en la línea de comando, como argumento tanto para -input como para -merge, y utilizar la opción -nodups, se puede utilizar qsmerge para eliminar registros que tienen valores clave duplicados de un enfoque. • El enfoque de destino es independiente de los enfoques primario y secundario, es decir que no comparten datos subyacentes. • Al ordenar los registros o realizar pruebas para detectar claves duplicadas, qsmerge trata al valor nulo de un campo clave como un valor nuevo y distinto: un registro con el valor nulo de un campo clave nunca corresponde a un registro de otro enfoque. Se puede anular este comportamiento mediante el uso de la opción -equalnulls. • Al utilizar Portrait Miner, se puede acceder a la mayoría de las funciones de qsmerge mediante el cuadro de diálogo Combinar registros. . • Si los enfoques combinados contienen tipos de datos heredados, en el enfoque de salida los tipos heredados se convierten en el tipo de dato admitido más apropiado. Si se produce un error en la conversión debido a que el tipo de dato no tiene almacenamiento suficiente, en lugar de que se trunque el contenido, el campo contendrá el valor null. En este caso, aparece un mensaje de resumen que muestra el campo afectado y la cantidad de entradas al momento de la finalización. • Para combinar dos enfoques, los campos que se combinarán deben incluir tipos de datos compatibles. Ejemplos Crear un enfoque, RetailTransAprilMayJune.ftr, que contenga todos los registros de los enfoques RetailTransAprilSorted.ftr, RetailTransMaySorted.ftr y RetailTransJuneSorted.ftr: qsmerge -input RetailTransAprilSorted.ftr -merge RetailTransMaySorted.ftr -merge RetailTransJuneSorted.ftr -keys CustomerID -output RetailTransAprilMayJune.ftr Otra opción es incluir solo los registros del enfoque RetailTransAprilSorted.ftr, cuyos valores clave también aparecen en el enfoque RetailTransMaySorted.ftr: qsmerge -nodups -input RetailTransAprilSorted.ftr Guía de referencia del comando de creación de datos y TML 91 qsmerge -merge RetailTransMaySorted.ftr -keys CustomerID -output RetailTransAprilMayNodups.ftr También consulte qsjoin en la página 86 92 Portrait Miner 7.1 Capítulo Comandos para administrar enfoques En esta sección: • • • • • • qscopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 qslink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 qsmove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 qsremove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96 qsarchive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97 qsunzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98 7 qscopy qscopy Sinopsis qscopy -from <enfoque de origen> {-to <enfoque de destino> | -to <directorio>} [-force] Descripción: Copiar el enfoque de origen al enfoque de destino o a un enfoque en el directorio especificado (preservando el nombre del enfoque de origen). Copiar los datos subyacentes para que el nuevo enfoque sea independiente de demás enfoques. Argumentos opcionales Opción Efecto -force Consulte la La opción de línea de comandos -force en la página 24. Además de esta opción de línea de comandos, qscopy acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Debido a la independencia potencial de los enfoques, no debe intentar copiar un enfoque mediante utilidades estándares del sistema operativo. En cambio, siempre debe utilizar qscopy o qslink (o Portrait Miner). Nota: • Si intenta copiar un enfoque sobre un enfoque existente, qscopy emite una advertencia y no hace nada más. • Para crear un copia enlazada de un enfoque, en la que la copia comparta los datos subyacentes con el enfoque original, debe utilizar qslink. • Para crear una copia de un enfoque, o de un subconjunto de un enfoque, sin incluir metadata , debe utilizar qsimportfocus. • También puede acceder a las funcionalidades de qscopy mediante Portrait Miner . Ejemplo Crear un nuevo enfoque, RetailArchiveMay.ftr, y guardar los resultados de la sesión de análisis de mayo en el enfoque RetailAnalysisMay.ftr: qscopy -from RetailAnalysisMay.ftr -to RetailArchiveMay.ftr También consulte qsmove en la página 95 qsremove en la página 96 94 Portrait Miner 7.1 Capítulo 7: Comandos para administrar enfoques qslink Sinopsis qslink -from <enfoque de origen> {-to <enfoque de destino> | -to <directorio>} [-force] Descripción: Copiar el enfoque de origen al enfoque de destino o a un enfoque en el directorio especificado (preservando el nombre del enfoque de origen). Compartir los datos subyacentes con el enfoque original. (El nuevo enfoque es dependiente del enfoque original). Argumentos opcionales Opción Efecto -force Consulte la La opción de línea de comandos -force en la página 24. Además de esta opción de línea de comandos, qslink acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si intenta copiar un enfoque sobre un enfoque existente, qslink emite una advertencia y no hace nada más. • Para crear una copia independiente de un enfoque, en la que la copia no comparta los datos subyacentes con el enfoque original, debe utilizar qscopy. • También puede acceder a las funcionalidades de qslink mediante Portrait Miner . Ejemplo Crear un enfoque RetailLoyaltyProjectMay.ftr, que comparte datos subyacentes con el enfoque RetailAnalysisMay.ftr: qslink -from RetailAnalysisMay.ftr -to RetailLoyaltyProjectMay.ftr También consulte qsimportfocus en la página 52 qsmove en la página 95 qsremove en la página 96 qsmove Sinopsis qsmove -from <enfoque de origen> -to {,<enfoque de destino> | <directorio>,} Guía de referencia del comando de creación de datos y TML 95 qsremove Descripción: Renombrar el enfoque de origen como enfoque de destino o mover el enfoque de origen al directorio especificado, teniendo en cuenta posibles dependencias de los datos. Argumentos opcionales Además de los argumentos requeridos, qscopy acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si se intenta renombrar o mover un enfoque por encima de un enfoque existente, qsmove emitirá una advertencia y no realizará ninguna operación. • También se puede acceder a la función de qsmove mediante Portrait Miner . Debido a la posible interdependencia de los datos de los enfoques, no se debe intentar renombrar o mover un enfoque con utilidades estándares del sistema operativo. En su lugar, siempre se debe utilizar qsmove (o Portrait Miner). Ejemplos Renombrar el enfoque RetailTransAprilSorted.ftr como RetailTransAprilSort.ftr: qsmove -from RetailTransAprilSorted.ftr -to RetailTransAprilSort.ftr Mover el enfoque RetailArchiveMay.ftr al directorio Retail: qsmove -from RetailArchiveMay.ftr -to Retail También consulte qscopy en la página 94 qslink en la página 95 qsremove en la página 96 qsremove Sinopsis qsremove -focus <archivo de enfoque> [-focus <archivo de enfoque> ...] [-force] [-recursive] Descripción: Eliminar uno o más archivos de enfoque, teniendo en cuenta las posibles dependencias de datos. Argumentos opcionales 96 Opción Efecto -force Ignorar los errores provocados por la incapacidad de actualizar enlaces relacionados con los enfoques. Portrait Miner 7.1 Capítulo 7: Comandos para administrar enfoques Opción Efecto -recursive Eliminar el enfoque y todos los enfoques dependientes. Además de estas opciones de línea de comandos, qsremove acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Debido a la posible interdependencia de los datos de los enfoques, no se debe intentar eliminar un enfoque con utilidades estándares del sistema operativo. En su lugar, siempre se debe utilizar qsremove (o Portrait Miner). Nota: • Si existe una dependencia circular en la cadena o la cadena de enfoque principal no se puede escribir, se mostrará un error. En tal caso, se debe utilizar -force y -recursive para eliminar el enfoque. • Si se utiliza más de un argumento -focus y qsremove no puede eliminar uno de los enfoques, continuará eliminando los enfoques posteriores (pero emitirá un mensaje de error y devolverá un estado que no será cero al salir). • Eliminar un enfoque con qsremove no será posible si no se tiene permiso de escritura para el archivo de enfoque .ftr. • Tras eliminar un enfoque con qsremove, es posible que quede una copia de seguridad del archivo .ftr. Se puede eliminar sin problemas como si lo hiciera con cualquier archivo. • También se puede acceder a la función de qsremove mediante Portrait Miner . Ejemplos Eliminar el enfoque RetailTransApril6Months.ftr y todos los enfoques dependientes: qsremove -focus RetailTransApril6Months.ftr Eliminar dos enfoques RetailTransAprilCA.ftr y RetailTransApril2Customers.ftr: qsremove -focus RetailTransAprilCA.ftr -focus RetailTransApril2Customers.ftr También consulte qscopy en la página 94 qslink en la página 95 qsmove en la página 95 qsarchive Sinopsis qsarchive -input <enfoque o carpeta> [, -input <enfoque o carpeta> ...]-output <archivo de archivo> Guía de referencia del comando de creación de datos y TML 97 qsunzip Descripción: Crear un archivo de archivo de una lista de enfoques o carpetas. Argumentos opcionales: además de los argumentos requeridos, qsarchive acepta las opciones comunes de todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si crea un archivo de archivos a partir de una carpeta que contiene enfoques enlazados a datos fuera de la carpeta, los datos externos se copiarán en el archivo. • Se puede acceder a la mayoría de las funciones del comando de creación de datos qsarchive al utilizar el cuadro de diálogo Archivar de Portrait Miner. Ejemplo Crear un archivo de archivo FirstQuarter.zip que comparta datos subyacentes con los enfoques January.ftr, February.ftr y March.ftr: qsarchive -input January.ftr -input February.ftr -input March.ftr -output FirstQuarter.zip También consulte qsunzip en la página 98 qsunzip Sinopsis qsunzip -input <archivo de archivo > [-output <directorio de salida>] [-overwrite] Descripción: Extraer archivos y carpetas de un archivo de archivo . Argumentos opcionales Opción Efecto -output <directorio de salida> Extraer en el directorio alternativo donde está ubicado el archivo de archivo . Si no se proporciona una opción -output, los archivos y las carpetas se extraerán al directorio actual. -overwrite Sobrescribe los archivos y las carpetas si se los extrae a una ubicación que contiene el mismo contenido que el archivo zip. Además de estas opciones de línea de comando, qsunzip acepta las opciones comunes de todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si no se utiliza la opción -overwrite y se extraen los archivos y las carpetas a una ubicación que contiene los mismos archivos y carpetas de origen, se producirá un error en la extracción. • Se puede acceder a la mayoría de las funciones del comando de creación de datos qsunzip mediante el cuadro de diálogo Extraer de Portrait Miner. 98 Portrait Miner 7.1 Capítulo 7: Comandos para administrar enfoques Ejemplo Extraer archivo s y carpetas del mismo archivo de archivo firstquarter.zip a la misma ubicación que firstquarter.zip: qsunzip -input firstquarter.zip También consulte qsarchive en la página 97 Guía de referencia del comando de creación de datos y TML 99 Capítulo Comandos para elaborar informes En esta sección: • • • • • • • • • qssettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 qsaudit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 qsdescribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 qsdescribestat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 qshtmlunpack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108 qsdtsnapshot, qsscsnapshot . . . . . . . . . . . . . . . . . . . . .109 qsxt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 qsinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113 qsdescribelicense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 8 qssettings qssettings Sinopsis qssettings [<property>=<valor> ...] Descripción: establezca el valor de cada propiedad enumerada para controlar aspectos de la salida de los comandos que generan informes qsaudit, qsdtsnapshot y qsscsnapshot. Puede establecer los valores de las siguientes propiedades: • DateFormat, donde 0 corresponde a europeo, 1 corresponde a americano y 2 corresponde a AMD • NumDecimalPlaces • StripTrailingZeroes • ThousandSeparators • TwelveHour Argumentos opcionales Además de los argumentos necesarios, qssettings acepta las opciones comunes a todos los comandos de creación de datos [consultar Opciones estándar de la línea de comandos en la página 21]. Nota: El comando qssettings crea o modifica el archivo settings.xml en su directorio de configuración, específico según el usuario, de Portrait Miner. Utilice este archivo en conjunto con qsaudit, qsdtsnapshot, o qsscsnapshot especificando la opción Opciones estándar de la línea de comandos en la página 21-settings [consultar ]. Ejemplo Cree un archivo de configuraciones para que muestre las fechas en formato YMD, hora en formato de 12 horas y números con ceros posteriores, en cuatro posiciones decimales y un separador de miles específico según el lugar: qssettings DateFormat=2 TwelveHour=true StripTrailingZeroes=false NumDecimalPlaces=4 ThousandSeparators=true También consulte Formatos de fecha en la página 55 qsaudit en la página 102 qsdtsnapshot, qsscsnapshot en la página 109 qsaudit Sinopsis qsaudit [-generate Full] -input <enfoque> [-subfocus <subenfoque>] [-reference <informe HTML archivado> | -reference <informe XML archivado>] -output <informe HTML archivado> -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] 102 Portrait Miner 7.1 Capítulo 8: Comandos para elaborar informes -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-records <expresión FDL> | -records @<archivo FDL>] [-targets <campo> [, <campo> ...] | -targets @<archivo de campos> | -notarget] [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] [-paginate] [-nopartition] -partitionfield <campo> qsaudit -generate XML -input <enfoque> [-subfocus <subenfoque>] [-reference <informe HTML archivado> | -reference <informe XML archivado>] -output <informe XML archivado> -fields <campo> [, <campo> ...] | -fields @<archivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<archivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-records <expresión FDL> | -records @<archivo FDL>] [-targets <campo> [, <campo> ...] | -targets @<archivo de campos> | -notarget] [-overwrite] [-nopartition] [-partitionfield <campo>] qsaudit -generate HTML {-input <informe HTML archivado> | -input <informe XML archivado>} -output <informe HTML archivado> [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] [-paginate] Descripción: crea un informe de Perfil y Auditoría en el enfoque especificado, o un informe de comparación que describa las diferencias entre el enfoque especificado y el enfoque descripto en un informe de referencia (con la opción -reference). De manera predeterminada, realizar una auditoría de todos los campos del enfoque, en relación con el objetivo del enfoque, si es que lo hay. Este es un proceso de dos etapas: primero, el comando genera un archivo XML intermedio (empaquetado en un archivo .qsxml), y luego, a partir de este archivo intermedio, crea el informe con formato HTML terminado (empaquetado en un archivo .qshtml). Guía de referencia del comando de creación de datos y TML 103 qsaudit Opcionalmente puede crear solamente el archivo intermedio .qsxml o el archivo .qshtml a partir de un archivo .qshtml o .qsxml preexistente. Para descomprimir archivos .qshtml y .qsxml, visualizarlos o reutilizarlos fuera de Portrait Miner, utilice qshtmlunpack. Argumentos opcionales Opción Efecto -fields <campo> [, <campo> ...] Realice una auditoría sólo sobre los campos especificados (excepto los campos excluidos con -xfields). -fields @<archivo de campos> Realice una auditoría sólo sobre los campos enumerados (uno por línea) en el archivo de campos. -generate HTML Crea un informe HTML a partir de un informe XML o HTML. -generate Full Crea un informe HTML directamente (predeterminado si usted no especifica una opción -generate). -generate XML Crea un informe XML . -htmlimages largepng Incluye imágenes PNG de mapa de bits y SVG optimizadas para imprimir y para ver en pantalla. -htmlimages none No incluye ninguna imagen. -htmlimages smallpng Incluye imágenes PNG de mapa de bits y SVG optimizadas para pantalla (predeterminado si usted no especifica una opción -htmlimages). -htmlimages svg Incluye solamente imágenes SVG. -nopartition Crea un perfil y auditoría no uplift, ignorando toda interpretación de partición en el enfoque. -notarget No realiza auditorías sobre campos relacionados con campos objetivo, aunque el enfoque tenga un objetivo. -overwrite Sobrescribe cualquier informe preexistente. De lo contrario, si ya hay un informe con el mismo nombre, qsaudit emite una advertencia y no hace nada más. 104 -paginate Crea una página HTML individual para cada campo auditado. -partitionfield <campo> Usar el campo especificado como el campo de partición. Portrait Miner 7.1 Capítulo 8: Comandos para elaborar informes Opción Efecto -records <expresión FDL> Informa solamente los registros en los cuales la expresión FDL numérica no es cero ("verdadero"). -records @<archivo FDL> Informa solamente los registros en los cuales la expresión FDL en el campo especificado no es cero ("verdadero"). -reference <informe HTML archivado> Utiliza el informe HTML creado anteriormente y archivado como informe de referencia y crea un informe comparativo. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque. -tags <etiqueta> [, <etiqueta> ...] Audita solamente los campos que tienen las etiquetas especificadas (excepto cualquier campo excluido con -xtags). -targets <campo> [, <campo> ...] Audita campos en el enfoque en relación con los campos objetivo especificados, en lugar del enfoque objetivo. -targets @<archivo de campos> Audita campos en el enfoque en relación con los campos objetivo enumerados (uno por línea) en el archivo de campos. -xfields <campo> [, <campo> ...] No audita los campos especificados. -xfields @<archivo de campos> No audita los campos enumerados (uno por línea) en el archivo de campos. -xtags <etiqueta> [, <etiqueta> ...] No audita los campos que tienen las etiquetas especificadas. Además de estas opciones de líneas de comandos, qsaudit acepta la opción -settings, como también opciones comunes para todos los comandos de creación de datos [consultar Opciones estándar de la línea de comandos en la página 21]. Nota: • De manera predeterminada, un informe de comparación incluye los mismos campos que el informe de referencia. Si selecciona explícitamente los campos por incluir en el informe de comparación (con la opción -fields), se agregarán a los campos que ya tienen un perfil. • Un informe de comparación utiliza los mismos campos objetivo que el informe de referencia. Los campos objetivos especificados explícitamente son ignorados. • Las opciones adicionales de formato de informes están disponibles a través de las preferencias de Auditorías y Fotos (consultar la Ayuda de Portrait Miner). • Si no incluye una opción de objetivo y -target, qsaudit no podrá auditar el enfoque. • Con Portrait Miner, puede acceder a la mayoría de las funciones de qsaudit mediante el cuadro de diálogo Crear perfil y auditar. . Ejemplos Guía de referencia del comando de creación de datos y TML 105 qsdescribe Crear un nuevo Perfil y auditoría RetailCustApril.qshtml desde el enfoque RetailCustApril.ftr: qsaudit -input RetailCustApril.ftr -output RetailCustApril.qshtml Crear un nuevo Perfil y auditoría RetailCustMay.qshtml desde el enfoque RetailCustMay.ftr, auditando todos los campos por Age: qsaudit -targets Age -input RetailCustMay.ftr -output RetailCustMay.qshtml Sobrescribir para crear un Perfil y auditoría en el cual cada auditoría de campo se encuentre en una página HTML independiente: qsaudit -paginate -targets Age -overwrite -input RetailCustMay.ftr -output RetailCustMay.qshtml Crear un Perfil y auditoría RetailCustAprilnoimages.qshtml sin imágenes, desde el enfoque RetailCustApril.ftr, solamente para los campos StartDate, Age, and Gender: qsaudit -fields "StartDate, Age, Gender" -htmlimages none -input RetailCustApril.ftr -output RetailCustAprilnoimages.qshtml Crear nuevamente la salida HTML, con una página HTML distinta por cada campo auditado (y sin recrear los datos subyacentes de auditoría): qsaudit -generate HTML -paginate -input RetailCustApril.qshtml -output RetailCustAprilpaginate.qshtml Crear un informe de comparación RetailCustMayApril.qshtml a partir del enfoque RetailCustMay.ftr comparado con el informe de referenciaRetailCustApril.qshtml: qsaudit -reference RetailCustApril.qshtml -input RetailCustMay.ftr -output RetailCustMayApril.qshtml También consulte XML en Portrait Miner en la página 342 qsdescribe en la página 106 qsdtsnapshot, qsscsnapshot en la página 109 qssettings en la página 102 qsdescribe Sinopsis qsdescribe -input <enfoque de origen> [-subfocus <subenfoque>] [-output <archivo de informe>] [-fields [-detail]] Descripción: Muestra información resumida sobre el enfoque, como texto sin formato, inclusive la cantidad de campos y registros y el historial del enfoque. Argumentos opcionales 106 Portrait Miner 7.1 Capítulo 8: Comandos para elaborar informes Opción Efecto -detail Brinda información más detallada de los campos del enfoque, inclusive estadísticas de campos, expresiones de derivación y semillas para campos derivados. -fields Brinda información sobre cada uno de los campos del enfoque. -output <archivo de informe> Escribe el informe en el archivo especificado, en lugar de la salida estándar. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque de origen. Además de estas opciones de la línea de comandos, qsdescribe acepta las opciones comunes a todos los comandos de creación de datos [consultar Opciones estándar de la línea de comandos en la página 21]. Nota: • De manera predeterminada, qsdescribe informa sobre toda la jerarquía de subenfoques dentro de un enfoque. Si utiliza la opción -subfocus, qsdescribe informa solamente sobre el subenfoque que usted especifique. • Con Portrait Miner, podrá acceder a la mayoría de las funciones de qsdescribe a través del cuadro de diálogo Mostrar información de enfoque . Ejemplos Informar la cantidad de campos, registros y el historial del enfoque RetailCustApril.ftr: qsdescribe -input RetailCustApril.ftr Además, podrá informar los nombres y tipos de campos: qsdescribe -fields -input RetailCustApril.ftr Finalmente, podrá informar las estadísticas, selecciones, los comentarios y las derivaciones de los campos: qsdescribe -detail -fields -input RetailCustApril.ftr También consulte qsaudit en la página 102 qssettings en la página 102 qsdescribestat Sinopsis qsdescribestat -input <conjunto de datos de origen> [-output <archivo de informe>] [-type <tipo de conjunto de datos>] Guía de referencia del comando de creación de datos y TML 107 qshtmlunpack [-detail] Descripción: Mostrar una lista de los nombres de campo en un conjunto de datos de origen de terceros, en formato de texto plano. Los conjuntos de datos SAS, SPSS y de Excel son algunos de los conjuntos admitidos (consulte http://support.quadstone.com/info/requirements/ para obtener una lista detallada). Argumentos opcionales Opción Efecto -detail Enumerar los tipos de datos de campo junto con sus nombres. -output <archivo de informe> Escribe el informe en el archivo especificado, en lugar de la salida estándar. -type <tipo de conjunto de datos> Interpretar el conjunto de datos de origen como el tipo de conjunto de datos especificado, y anular la interpretación por defecto (que depende de la extensión del archivo). Los tipos de conjuntos de datos válidos incluyen sas, spss y excel; para consultar una lista completa, utilice la opción -help. Además de estas opciones de línea de comandos, qsdescribestat acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Ejemplos Informar los nombres de campos de los conjuntos de datos SAS RetailCustApril.sas7bdat: qsdescribestat -input RetailCustApril.sas7bdat Además, informar los tipos de campos: qsdescribestat -detail -input RetailCustApril.sas7bdat También consulte qsexportstat en la página 50 qsimportstat en la página 48 qshtmlunpack Sinopsis qshtmlunpack <informe archivado> <directorio de salida> [<nombre de archivo HTML>] Descripción: descomprimir un informe generado por Portrait Miner como archivo .qshtml o .qsxmly crear el directorio de salida especificado que contenga los componentes del informe. En el caso de un informe HTML archivado, el archivo HTML (dentro del directorio de salida) recibe de manera predeterminada el nombre qsreport.html. Argumentos opcionales 108 Portrait Miner 7.1 Capítulo 8: Comandos para elaborar informes Opción Efecto <nombre de archivo HTML> Utilizar este nombre de archivo para el archivo HTML en un informe HTML sin descomprimir, en lugar de qsreport.html. Al descomprimir un informe XML archivado, qshtmlunpack ignora este argumento. Nota: Con Portrait Miner puede acceder a la mayoría de las funciones de qshtmlunpack a través de la opción del botón secundario del mouse Descomprimir a carpeta. Ejemplo Descomprimir el archivo RetailCustApril.qshtml como Perfil y Auditoría HTML RetailCustApril.html en el subdirectorio www: qshtmlunpack RetailCustApril.qshtml www RetailCustApril.html También consulte qsaudit en la página 102 qsdtsnapshot, qsscsnapshot en la página 109 qsdtsnapshot, qsscsnapshot Sinopsis {qsdtsnapshot -input <árbol de decisión> | qsscsnapshot -input <cuadro de mando>} [-generate Full] -output <informe HTML archivado> [-focus <enfoque> [-subfocus<subenfoque>]] [-audit modeled | -audit all | -audit none] [-description <archivo de texto>] [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] {qsdtsnapshot -input <árbol de decisión> | qsscsnapshot -input <cuadro de mando>} -generate XML -output <informe XML archivado> [-focus <enfoque> [-subfocus<subenfoque>]] [-audit modeled | -audit all | -audit none] Guía de referencia del comando de creación de datos y TML 109 qsdtsnapshot, qsscsnapshot [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] {qsdtsnapshot | qsscsnapshot} -generate HTML {-input <informe HTML archivado> | -input <informe XML archivado>} -output <informe HTML archivado> [-description <archivo de texto> [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] Descripción: crear una foto de modelo del árbol de decisión especificado (archivo .qsdt) o cuadro de mando (archivo .qssc). De manera predeterminada, auditar todos los campos utilizados en el modelo. Este es un proceso de dos etapas: primero, el comando genera un archivo XML intermedio (empaquetado en un archivo .qsxml), y luego, a partir de este archivo intermedio, crea el informe con formato HTML terminado (empaquetado en un archivo .qshtml). Opcionalmente puede crear solamente el archivo intermedio .qsxml o el archivo .qshtml a partir de un archivo .qshtml o .qsxml preexistente. Para descomprimir archivos .qshtml y .qsxml, visualizarlos o reutilizarlos fuera de Portrait Miner, utilice qshtmlunpack. Argumentos opcionales 110 Opción Efecto -audit all Audita todos los campos del enfoque. -audit modeled Audita los campos utilizados en el modelo (los predeterminados si no especifica una opción de -audit). -audit none No audita ningún campo. -description <archivo de texto> Incluye el contenido de este archivo de texto como descripción del modelo en la sección "Metadatos provistos por el usuario" del informe. -focus <enfoque> Informe del modelo según se lo aplica en el enfoque especificado, en lugar de en el enfoque utilizado para crear el modelo. -generate HTML Crea un informe HTML a partir de un informe XML o HTML. Portrait Miner 7.1 Capítulo 8: Comandos para elaborar informes Opción Efecto -generate Full Crea un informe HTML directamente (predeterminado si usted no especifica una opción -generate). -generate XML Crea un informe XML . -htmlimages largepng Incluye imágenes PNG de mapa de bits y SVG optimizadas para imprimir y para ver en pantalla. -htmlimages none No incluye ninguna imagen. -htmlimages smallpng Incluye imágenes PNG de mapa de bits y SVG optimizadas para pantalla (predeterminado si usted no especifica una opción -htmlimages). -htmlimages svg Incluye solamente imágenes SVG. -overwrite Sobrescribe cualquier informe preexistente. De lo contrario, si ya hay un informe con el mismo nombre, qsdtsnapshot/qsscsnapshot emite una advertencia y no hace nada más. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque. Además de estas opciones de líneas de comandos, qsdtsnapshot y qsscsnapshot aceptan la opción -settings como también opciones comunes para todos los comandos de creación de datos [consultar Opciones estándar de la línea de comandos en la página 21]. Nota: • Si no utiliza la opción -focus de todos modos debe existir el enfoque utilizado para crear el modelo. • Las opciones adicionales de formato de informes están disponibles a través de las preferencias de auditorías y fotos (consultar la Ayuda de Portrait Miner). • Con Portrait Miner, puede acceder a la mayoría de las funciones de qsdtsnapshot y qsscsnapshot a través de la caja de diálogo Foto de árbol de decisión o Scorecard Snapshot. . Ejemplos Crear una foto de modelo del archivo de árbol de decisión early-adopter-modelApril.qsdt, creado en el enfoque RetailCustApril.ftr, y aplicado al mismo enfoque: qsdtsnapshot -input early-adopter-modelApril.qsdt -output early-adopter-modelApril.qshtml Aplicar este modelo al enfoque RetailCustMay.ftr, pero esta vez auditar todos los campos, en lugar de hacerlo sólo sobre aquellos que participaron en la definición del modelo: qsdtsnapshot -focus RetailCustMay.ftr -audit all -input early-adopter-modelApril.qsdt -output early-adopter-modelMay.qshtml También consulte Guía de referencia del comando de creación de datos y TML 111 qsxt XML en Portrait Miner en la página 342 qsaudit en la página 102 qssettings en la página 102 qsxt Sinopsis qsxt -focus <enfoque> [-subfocus <subenfoque>] [-spec <archivo de tabulación cruzada>] [-comparable] [-output <archivo de tabulación cruzada>] [-description <archivo de texto>] Descripción: Aplica una especificación de tabulación cruzada (proporcionada por defecto a una entrada estándar) al enfoque especificado para crear una nueva tabulación cruzada (por defecto a una salida estándar). Argumentos opcionales Opción Efecto -comparable Cuando sea pertinente, utilice rangos de la parte resultante de la tabulación cruzada proporcionada en lugar de rangos de la parte de especificación. -description <archivo de texto> Incluir el contenido de este archivo de texto como una descripción de la tabulación cruzada. -output <archivo de tabulación cruzada> Cree este archivo de tabulación cruzada en lugar de escribir la salida estándar. -spec <archivo de tabulación cruzada> Utilice este archivo de tabulación cruzada en lugar de leer desde la entrada estándar. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque. Además de estas opciones de línea de comando, qsxt acepta las opciones comunes de todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • En la tabulación cruzada de salida, qsxt crea rangos de cada campo mediante el uso de una de las siguientes opciones (en orden de preferencia decreciente): un rango para el campo de la especificación de tabulación cruzada proporcionada (o la parte resultante si se utiliza la opción -comparable); un rango para el campo del enfoque proporcionado; los parámetros de rango predeterminados, según lo configurado por las preferencias de rango (consulte la Ayuda de Portrait Miner). • Al utilizar Portrait Miner, puede acceder a la mayoría de las funciones de qsxt mediante el cuadro de diálogo Aplicar tabulación cruzada. . 112 Portrait Miner 7.1 Capítulo 8: Comandos para elaborar informes Ejemplos Crear una nueva tabulación cruzada, ageGenderMay.qstv, desde el enfoque RetailCustMay.ftr, mediante el uso del archivo de la especificación de tabulación cruzada ageGenderApril.qstv (generado desde Decision Studio): qsxt -focus RetailCustMay.ftr -spec ageGenderApril.qstv -output ageGenderMay.qstv Además, se puede usar el rango contenido en el archivo de tabulación cruzada ageGenderApril.qstv para crear el resultado ageGenderMay-binbyApril.qstv: qsxt -comparable -focus RetailCustMay.ftr -spec ageGenderApril.qstv -output ageGenderMay-binbyApril.qstv También consulte Especificación de tabulación cruzada para qsxt en la página 353 qsinfo Sinopsis qsinfo -input <enfoque de origen> [-generate HTML | -generate XML] [-output <archivo de informe>] Descripción: Mostrar información en las ubicaciones y los tamaños de archivos que conforman el enfoque de origen, incluidos todos los archivos de datos que se comparten con los demás enfoques. Mostrar las relaciones entre el enfoque de origen con los demás enfoques (enumerar los enfoques que dependen del de origen y aquellos de los que depende este último). Por defecto, debe escribir el informe en la salida estándar en un formato de archivo basado en XML. Argumentos opcionales Opción Efecto -generate HTML Crear el informe en formato HTML. -generate XML Crear el informe en un formato de archivo basado en XML (el predeterminado si no se especifica una opción -generate). -output <archivo de informe> Escribe el informe en el archivo especificado, en lugar de la salida estándar. Además de estas opciones de línea de comandos, qsinfo acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Un enfoque se almacena en el disco como un archivo .ftr (el "archivo de enfoque") junto con una colección de archivos de datos y otros en dos carpetas; sus nombres finalizan con .rdx ("Raw Data eXtract") y .xtr ("eXTRa"). Guía de referencia del comando de creación de datos y TML 113 qsdescribelicense Un nuevo enfoque que se crea al copiar un enfoque existente [consulte qscopy en la página 94] o al importar datos de otro tipo de base de datos es independiente de otros enfoques. Por otro lado, un enfoque que se guarda desde Decision Studio con un nombre nuevo, o uno que se crea al hacer una copia enlazada [consultar qslink en la página 95] es dependiente de las carpetas de datos que pertenecen a otros enfoques. • Al utilizar Portrait Miner, se puede acceder a la mayoría de las funcionalidades de qsinfo a través del cuadro de diálogo Mostrar propiedades de enfoque . Ejemplo Crear un nuevo informe de propiedades de enfoque HTML RetailCustApril.html, del enfoque RetailCustApril.ftr: qsinfo -input RetailAprilAnalysis.ftr -generate HTML -output RetailAprilAnalysis.html También consulte XML en Portrait Miner en la página 342 qsdescribelicense Sinopsis qsdescribelicense [-input <archivo de licencia>] [-output <archivo de informe>] Descripción: muestra un informe sobre la licencia instalada de Portrait Miner en formato de texto plano. Argumentos opcionales Opción Efecto -input <archivo de licencia> Realiza un informe sobre el archivo de licencia especificado en lugar de un archivo sobre la licencia instalada. -output <archivo de informe> Escribe el informe en el archivo especificado, en lugar de la salida estándar. Además de estas opciones de línea de comando, qsdescribelicense acepta las opciones comunes de todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: El informe puede incluir los siguientes componentes: • el nombre del titular de la licencia • la dirección IP o subred para la que la licencia es válida • el tamaño máximo de enfoque para el que la licencia es válida 114 Portrait Miner 7.1 Capítulo 8: Comandos para elaborar informes • fecha de inicio y finalización de la licencia • una lista de componentes de Portrait Miner para los cuales existe una licencia, con posibles anulaciones por componente para la dirección/subred IP, tamaño máximo del enfoque y fechas de validez Ejemplo Muestra las claves de licencia del archivo de licencia actual de Portrait Miner: qsdescribelicense Guía de referencia del comando de creación de datos y TML 115 Capítulo Comandos para construir modelos En esta sección: • • • • • • Acerca del Asistente de scorecard . . . . . . . . . . . . . . . . .118 qsscorecardwizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 qsdecisiontree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 qsscorecard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 Acerca del Asistente para reglas de asociación . . . . . .128 qsruleminer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 9 Acerca del Asistente de scorecard Acerca del Asistente de scorecard El Asistente de scorecard automatiza el modelado de scorecards utilizando metodología de mejores prácticas: crea rangos optimizados, luego reducción variable y finalmente crea una secuencia de modelos en datos de prueba y capacitación para establecer el mejor "tamaño de modelo". La metodología de modelado consta de las siguientes etapas. Metodología de prueba/capacitación Metodología de prueba/capacitación Una parte de los datos de origen se usa para capacitación y otra parte para pruebas: esta división puede generarse aleatoriamente o utilizando un campo indicador binario designado. Rango optimizado Creación de rangos optimizados Los datos de capacitación se usan para seleccionar rangos para cada candidato de análisis que maximiza su poder predictivo univariante comparado con el objetivo. En el caso de los campos no categóricos, se utiliza el asistente de rangos optimizados de forma iterativa para elegir el mejor rango. El número de rangos se aumenta hasta que el número de "puntos de ajuste" en el gráfico del valor objetivo promedio por rango excede a un umbral configurable (un "punto de ajuste" es un cambio de signo en la curva de un gráfico). Intuitivamente, esto asegura que el perfil del valor objetivo promedio como función de cada candidato de análisis sea relativamente "parejo", sin demasiados altos y bajos. Para campos categóricos, se combinan las categorías donde el valor objetivo promedio no es significativamente diferente de la media general. Se usa una prueba de diferencia de medias estándar [consulte significance en la página 177], con una corrección de Bonferroni aplicada en función del número total de categorías, c, que aparecen para el campo. Así, todas las categorías que tienen el nivel de confianza están combinadas (con un importante umbral configurable). Durante esta fase, los campos con una correlación sospechosamente alta al objetivo se excluyen de futuros análisis (con un mensaje de advertencia). También se emite una advertencia para los campos en los que cualquiera de los rangos individuales contiene un número pequeño de registros. Ambos umbrales son configurables. Reducción variable: La fase de reducción variable reduce el grupo de candidatos a análisis (predictores independientes) de aquellos inicialmente marcados como un grupo más pequeño de n, a fin de disminuir el tiempo de ejecución de la última fase de "encontrar el tamaño correcto". El proceso divide los candidatos para análisis en grupos de hasta dos campos 2n y crea un cuadro de mando (mediante el uso de datos de capacitación) en cada grupo, lo que elimina los peores campos mediante una exclusión gradual hasta que queden los mejores campos n del grupo. Repitiendo este procedimiento eventualmente se identifican los n mejores campos en general. Ajuste al tamaño correcto: la fase de encontrar el tamaño correcto elige la scorecard que equilibra mejor la complejidad (número de predictores) con la generalización (medida por el rendimiento del conjunto de prueba). Los datos de capacitación se usan para crear una secuencia de n scorecards. El primero contiene los n candidatos de análisis y cada modelo subsiguiente excluye al peor predictor. Luego se evalúa el rendimiento de cada modelo con los datos de prueba y se elige el mejor modelo con un criterio configurable. En el paso final, se reajustan los coeficientes de ponderación del modelo seleccionado, basándose en todos los datos (es decir, tanto los datos de prueba como los de capacitación) 118 Portrait Miner 7.1 Capítulo 9: Comandos para construir modelos a fin de mejorar la precisión. Si se desea pueden guardarse todos los modelos interinos junto con el modelo final. Resultados: Se generan (en forma opcional) diversos resultados, entre otros: • Un informe HTML que resume cómo se aplicó la metodología, incluidos los parámetros de entrada y los enlaces al registro de ejecución detallado. Esto incluye una tabla de datos de rendimiento que puede graficarse fácilmente en Excel. • El modelo final recomendado (en formatos .qssc y QMML ). • Un informe de Foto de modelo para el modelo recomendado. • El conjunto de datos final, incluidos los candidatos de análisis seleccionados, los rangos optimizados y las predicciones de modelos. También pueden guardarse si se desea los conjuntos de datos intermedios que contienen la metadata generada por la metodología hasta ese momento. Estos a menudo resultan útiles para tener un informe detallado y explorar las decisiones que se tomaron durante el proceso. También consulte qsscorecardwizard en la página 119 qsscorecardwizard Sinopsis qsscorecardwizard <archivo de parámetros> Descripción: Crear un cuadro de mando en un enfoque específico utilizando un archivo de parámetros. Nota: También se puede acceder a la funcionalidad del comando de creación de datos qsscorecardwizard mediante el cuadro de diálogo Asistente de Scorecard de Portrait Miner. Parámetros de modelado: el proceso de modelado realizado por qsscorecardwizard está controlado por el archivo de parámetros que se especifica como argumento de línea de comando. Por ejemplo, en el caso de un archivo denominado parameters.ini que contenga: [globals] inputFocus=D:/Data/DirectBank/DirectBank.ftr objectiveField=CardVisa xmlReport=D:/Data/DirectBank/DirectBank.xml [variable reduction] maxVariables=5 [model development] finalModel=D:/Data/DirectBank/DirectBank_auto.qssc finalFocus=D:/Data/DirectBank/DirectBank_auto_3rightsized.ftr el siguiente comando qsscorecardwizard parameters.ini crearía un modelo de cuadro de mando DirectBank_auto.qssc junto con un nuevo enfoque DirectBank_auto_3rightsized.ftr, y un nuevo informe de modelo DirectBank.xml. El archivo de parámetros tiene un formato similar a un archivo .ini de Windows: Guía de referencia del comando de creación de datos y TML 119 qsscorecardwizard • Cada sección se indica con un título de sección encerrado entre corchetes, p. ej., [globals]. A continuación se especifican los cuatro nombres de sección válidos. • Los parámetros de cada sección se definen al escribir el nombre del parámetro, un signo igual y el valor del parámetro, p. ej., maxBins = 20. • En los nombres de los parámetros no se distingue entre mayúsculas y minúsculas, y se ignora el espacio en blanco al principio y al final de cada línea. • Se ignoran las líneas en blanco y las líneas que comienzan con los caracteres de comentario # o ; (junto con un espacio en blanco opcional al comienzo de la línea). Existen valores predeterminados para varios de los parámetros, que se pueden modificar en todo el sitio o por usuario, pero siempre son anulados por los parámetros especificados en el archivo .ini de la línea de comando. Si se especifica un valor de parámetro en cualquiera de las siguientes ubicaciones, esto anula cualquier configuración de una ubicación anterior (donde <principalPM> es el directorio de instalación de Portrait Miner): • Las configuraciones estándar por defecto requeridas en <pmhome>/ext/scorecardwizard/defaults.ini. • Configuraciones por defecto opcionales de todo el sitio en <pmhome>/ext/scorecardwizard/scorecardwizard.ini • Configuraciones por defecto opcionales por usuario en <pmhome>/shared/users/<user>@<domain>/scorecardwizard.ini • El archivo de parámetros requerido especificado en la línea de comando. Parámetros de la sección [globals] 120 Parámetro Default Descripción (Predeterminada) inputFocus (obligatorio) La ubicación del enfoque de entrada. objectiveField (ninguno) El nombre del campo objetivo. Obligatorio a menos que el enfoque contenga una interpretación de objetivo. Si está establecida, esta configuración anula cualquier interpretación de enfoque. useFields (ninguno) Una lista separada por comas de los campos de candidatos para análisis. Si está establecido, se ignora cualquier interpretación de candidato para análisis del enfoque. ignoreFields (ninguno) Una lista de campos separada por comas para excluir de la lista de candidatos para análisis. testTrainingField (ninguno) El campo para utilizar como el indicador de capacitación de prueba. El campo debe ser un campo numérico binario en el que 1 indica datos de capacitación y 0 indica prueba. Si no está establecido, se generará automáticamente una división. Portrait Miner 7.1 Capítulo 9: Comandos para construir modelos Parámetro Default Descripción (Predeterminada) trainingProportion 0.5 La proporción de registros (entre 0 y 1) para seleccionar para la capacitación, excepto que testTrainingField esté especificado. randomSeed (ninguno) La semilla aleatoria que se utilizará. Si no está establecida, se generará automáticamente una semilla aleatoria. Se puede replicar una ejecución anterior al utilizar la semilla informada por esa ejecución (en la sección "parameters"). verbose false Establecer en verdadero (true) para obtener información adicional de diagnóstico en el registro de consola. Este detalle adicional siempre está registrado en el registro de archivos; consulte logFile. logFile (automático) La ubicación para registrar el progreso de la ejecución. Si no se especifica lo contrario, el registro se crea en <params>-<YYYY-mm-dd-HH-MM-SS>.log al lado del archivo de parámetros <params>.ini especificado en la línea de comandos. (Cuando se ejecuta a través de Portrait Miner, el registro se crea en <pmhome>/shared/logs/qsscorecardwizard-<user>-<YYYY-mm-dd-HH-MM-SS>.log.) xmlReport (automático) La ubicación para crear el informe de resumen XML. De forma predeterminada, el informe se guarda en <params>_report.xml al lado del archivo de parámetros <params>.ini especificado en la línea de comandos. Parámetros de la sección [optimized binning] Parámetro Default (Predeterminada) Descripción doOptimizedBinning true Establecer en falso para saltear los rangos optimizados. minBinSize 0 La cantidad mínima de registros que debe aparecer en un rango que no es nulo durante la creación de rangos optimizados de campos no categóricos. Cualquier rango (incluidos los rangos nulos y categóricos) que tenga menos registros activará una advertencia en el informe final. maxBins 20 La cantidad máxima de rangos que se deben crear para los campos no categóricos. La Guía de referencia del comando de creación de datos y TML 121 qsscorecardwizard Parámetro Default (Predeterminada) Descripción cantidad seleccionada de rangos podría ser menor, según la restricción de "punto de ajuste" (consulte la siguiente sección). maxTurningPoints 2 La cantidad máxima de cambios de signo en la diferencia de la media del campo objetivo entre rangos consecutivos (se excluyen los rangos nulos sin clasificar). Un valor de 0 hace que el rango final sea monótono en la media del campo objetivo. Un valor de maxBins (o mayor) elimina esta restricción. En general, un valor de 1 ó 2 es razonable. maxQuality 95 El porcentaje Gini (o R^2) máximo "creíble". Los campos con poder predictivo por encima de este umbral serán excluidos de los análisis posteriores. Tenga en cuenta que este control se realiza siempre (incluso cuando la creación de rangos optimizados está desactivada), excepto que se especifique un valor de 100. pValue 0.001 El nivel de importancia que determina si un rango categórico tiene un índice de respuesta significativamente diferente a la población general. El valor está especificado en una escala de 0 a 1, en general cerca de 0. Tenga en cuenta que también se aplica la corrección de Bonferroni. binnedFocus (ninguno) La ubicación donde se guarda el enfoque provisorio después de la creación de rangos optimizados, si se desea. Parámetros de la sección [variable reduction] 122 Portrait Miner 7.1 Capítulo 9: Comandos para construir modelos Parámetro Default (Predeterminada) Descripción doVariableReduction true Establecer en falso para saltear la reducción de la variable (y usar todos los candidatos para análisis en la etapa de ajuste del modelo al tamaño correcto). maxVariables 100 La cantidad máxima de candidatos para análisis que se permitirán en el modelo final (en general entre 20 y 100). reducedFocus (ninguno) La ubicación donde se guarda el enfoque provisorio después de la reducción de la variable, si se desea. Parámetros de la sección [model development] Parámetro Default (Predeterminada) Descripción doModelDevelopment true Establecer en falso para saltear el ajuste del modelo al tamaño correcto. modelType respuesta Especifica el tipo de modelo para los fines de etiquetado. Los valores válidos son: response, risk, churn, satisfaction, dissatisfaction. regressionMethod logística Especifica si los modelos de cuadro de mando deben tener regresión logística o una aproximación lineal (más rápida). regressionLevel campo Especifica la estimación de parámetros del nivel campo o rango en el cuadro de mando. La ponderación del nivel rango puede ser más exacta en los datos de capacitación, pero es más probable que tenga un sobreajuste en los datos de prueba. rightSizeCriteria min Especifica el criterio de ajuste al tamaño correcto utilizado para Guía de referencia del comando de creación de datos y TML 123 qsscorecardwizard Parámetro Default (Predeterminada) Descripción elegir la mejor cantidad de campos. Los valores válidos son: BIC, que significa criterio de información bayesiano, AIC, que significa criterio de información de Akaike (en general es más débil que el valor BIC ya que permite más campos), delta, que significa la disminución de devoluciones de la medición de calidad en lo que respecta a los resultados binarios (consulte minQualityIncreasePct a continuación), min o max, que significa el mínimo (o máximo) de todos los criterios recomendados (excluido el valor delta en el caso continuo). 124 minQualityIncreasePct 0.5 Este es el parámetro utilizado por el formulario delta de rightSizeCriteria: el modelo recomendado es el que tiene mayor cantidad de campos, de forma tal que el peor campo agregue al menos la cantidad especificada en el porcentaje de prueba-conjunto Gini (o R^2). saveIntermediateModels false Establecer en verdadero para guardar modelos intermedios como archivos .qssc y .qmml; de lo contrario, solo se guardará la recomendación final. predictionField (automático) Especificar el nombre del campo de predicción para el modelo final. Si no está establecido, se utiliza un nombre de campo único en base al tipo de modelo, p. ej., scorecardwizard__response. finalFocus (ninguno) La ubicación donde se guardará el enfoque que contiene los candidatos para análisis finales y el modelo recomendado, si se lo desea. Portrait Miner 7.1 Capítulo 9: Comandos para construir modelos Parámetro Default (Predeterminada) Descripción finalModel (ninguno) El directorio raíz para guardar el archivo de modelo de cuadro de mando final (tanto en formato .qssc como .qmml), si se lo desea. runModelSnapshot true Si se especifica tanto finalModel como finalFocus y la opción es verdadera, se crea una Foto de modelo (archivo .qshtml) junto con los archivos finalModel. También consulte Acerca del Asistente de scorecard en la página 118 qsdecisiontree Sinopsis qsdecisiontree -input <enfoque de origen> [-subfocus<subenfoque>] -build <decision-tree build specification> -result <decision-tree build report> [-output <enfoque de destino>] [-force] Descripción: Usar una especificación de creación de árbol de decisión para crear un árbol de decisión en el enfoque especificado y un nuevo informe de creación de árbol de decisión (que contenga estadísticas de árbol de decisión, un resultado de predicción de árbol de decisión y una tabulación cruzada de calibración) en un formato de archivo basado en XML. Argumentos opcionales Opción Efecto -force Consulte la La opción de línea de comandos -force en la página 24. -output <enfoque de destino> Crear este enfoque, que contenga un campo derivado adicional que aplique el nuevo resultado de predicción de árbol de decisión en el enfoque de entrada. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque. Además de estas opciones de línea de comando, qsdecisiontree acepta las opciones comunes de todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Guía de referencia del comando de creación de datos y TML 125 qsscorecard Ejemplo: dada la especificación de creación del árbol de decisión, decisiontree-specification.xml, con los siguientes contenidos: <?xml version="1.0" encoding="UTF-8"?> <decisiontree xmlns="http://www.quadstone.com/xml"> <specification nlevels="3"> <objectivefield> <field name="Age"/> </objectivefield> <analysiscandidates> <field name="Gender"/> <field name="MaritalStatus"/> <field name="HomeOwner"/> </analysiscandidates> <resultfield> <field name="PredictedAge"/> </resultfield> </specification> </decisiontree> utilice esta especificación para crear un informe de creación de árbol de decisión decisiontree-report.xml, y cree un nuevo enfoque RetailCustAprilPredictedAge.ftr que contenga el campo de predicción del árbol de decisión derivado PredictedAge: qsdecisiontree -build decisiontree-specification.xml -input RetailCustApril.ftr -result decisiontree-report.xml -output RetailCustAprilPredictedAge.ftr También consulte Especificación del árbol de decisión para qsdecisiontree en la página 357 qsscorecard en la página 126 qsscorecard Sinopsis qsscorecard -input <enfoque de origen> [-subfocus <subenfoque>] -build <scorecard build specification> -result <scorecard build report> [-output <enfoque de destino>] [-force] Descripción: Usar una especificación de creación de scorecard para crear una scorecard en el enfoque especificado y crear un nuevo informe de creación de scorecard (que contenga estadísticas de scorecard, un resultado de predicción de scorecard y una tabulación cruzada de calibración) en un formato de archivos basado en XML. Argumentos opcionales 126 Opción Efecto -force Consulte la La opción de línea de comandos -force en la página 24. -output <enfoque de destino> Crear este enfoque, que contenga un campo derivado adicional que aplique el nuevo resultado Portrait Miner 7.1 Capítulo 9: Comandos para construir modelos Opción Efecto de predicción de scorecard en el enfoque de entrada. -subfocus <subenfoque> Usar el subenfoque especificado del enfoque. Además de estas opciones de línea de comando, qsscorecard acepta las opciones comunes de todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Para un objetivo binario, qsscorecard usa la regresión logística; para un objetivo continuo, usa la regresión lineal. Ejemplo Dada la especificación de creación de cuadro de mando scorecard-specification.xml con los siguientes contenidos: <?xml version="1.0" encoding="UTF-8"?> <scorecard xmlns="http://www.quadstone.com/xml"> <specification modeltype="value" nfields="2" iscontinuous="true"> <objectivefield> <field name="Age"/> </objectivefield> <analysiscandidates> <field name="Gender"/> <field name="MaritalStatus"/> <field name="HomeOwner"/> </analysiscandidates> <resultfield> <field name="PredictedAge"/> </resultfield> </specification> </scorecard> utilice esta especificación para crear un informe de creación de cuadro de mando scorecard-report.xml, y crear un nuevo enfoque RetailCustAprilPredictedAge.ftr, que contenga el campo de predicción de cuadro de mando derivado PredictedAge: qsscorecard -build scorecard-specification.xml -input RetailCustApril.ftr -result scorecard-report.xml -output RetailCustAprilPredictedAge.ftr También consulte qsdecisiontree en la página 125 Especificación de creación de un cuadro de mando para qsscorecard en la página 359 Guía de referencia del comando de creación de datos y TML 127 Acerca del Asistente para reglas de asociación Acerca del Asistente para reglas de asociación El Asistente para reglas de asociación automatiza el descubrimiento de reglas de secuencia y asociación. Por lo general, esto se utiliza para explorar datos de eventos, cestas o transacciones de clientes detalladas para aplicaciones como las siguientes: Análisis de "cesta" de compra: identifica combinaciones de productos que, comúnmente, aparecen (o no aparecen) juntas dentro de una única transacción de compra (cesta de productos). Mejor producto siguiente: determina la secuencia más común en la que se compran productos o servicios; por ejemplo, es más probable que los clientes de bancos abran una cuenta de inversión/de crédito después de abrir una caja de ahorro de intereses elevados. Análisis de impacto de promoción comercial: identifica patrones de comunicaciones de promoción comercial con mayores probabilidades de que se produzcan antes de una compra Preparación de los datos: el Asistente para reglas de asociación se ejecuta directamente contra transacciones o datos de eventos almacenados en un conjunto de datos de enfoque, que se beneficia del acceso a datos de alto rendimiento de Portrait Miner. • Para el análisis de Cesta de mercado, debe usar un conjunto de datos del nivel de elementos que contenga un registro por elemento. El conjunto de datos debe contener un identificador de cesta que agrupe a los elementos en la misma cesta, así como un campo identificador de producto (ordenado por rangos y categórico) que indique el nombre de producto o el código de cada elemento. El conjunto de datos se debe ordenar según el campo clave identificador de cesta. • Para el análisis de Producto siguiente, debe elegir un conjunto de datos con un registro por producto o servicio. El conjunto de datos debe contener un identificador de cesta, con frecuencia, el identificador de cliente, que agrupe los productos, el identificador de producto (ordenado por rangos y categórico) y la marca de hora del producto (entero o fecha) que indique el orden en que se adquirieron los productos. El conjunto de datos se debe ordenar según el campo clave identificador de cesta. Parámetros de algoritmos: el Asistente para reglas de asociación está basado sobre el algoritmo a priori que es estándar en la industria y que incluye una amplia gama de funcionalidades para controlar el descubrimiento de reglas. El descubrimiento de reglas se puede restringir a productos de interés particulares, y se pueden controlar diversos parámetros que definen lo que es una regla interesante (soporte, nivel de confianza, complejidad de la regla, medidas de selección de reglas ampliadas). Observe que estas configuraciones pueden tener un impacto sobre el tiempo de ejecución: en especial, si se reduce el valor mínimo de admisión, el tiempo de ejecución aumentará, a menos que también se especifique una complejidad de regla máxima (cantidad de antecedentes). Términos el Asistente para reglas de asociación usa una variedad de términos que, tal vez, no le resulten familiares, entre otros: Regla: en general, una regla afirma que si se cumple con un conjunto de condiciones (el lado izquierdo o el antecedente de la regla), entonces, se producirá otra condición (el lado derecho o el consecuente de la regla). En las reglas de asociación o secuencia, las condiciones de la regla corresponden a la presencia de elementos específicos en la cesta. Por ejemplo, una regla simple podría ser la siguiente: si una cesta contiene pan, entonces, también contendrá mermelada. 128 Portrait Miner 7.1 Capítulo 9: Comandos para construir modelos Antecedent: el lado izquierdo de una regla, es decir, el conjunto de elementos que deben aparecer en la cesta para que la regla sea relevante. Consequent: el lado derecho de una regla, es decir, el conjunto de elementos que la regla predice que estarán presentes cuando se cumpla con el lado izquierdo (antecedente). Soporte: el soporte (absoluto) de un conjunto de elementos es la cantidad de cestas que contienen todos los elementos del conjunto. El soporte relativo es la misma cantidad expresada como un porcentaje de la cantidad total de cestas. Soporte de regla: el soporte de una regla es el del antecedente de la regla, es decir, la proporción de cestas a la que se aplica el lado izquierdo de la regla. Esto mide la frecuencia con la que la regla es relevante. Fiabilidad de la regla: el nivel de confianza de una regla es el soporte del conjunto de todos los elementos que aparecen en la regla (a la izquierda o a la derecha), dividido por el soporte del antecedente de la regla. Mide la probabilidad de que el consecuente de la regla (lado derecho) sea verdadero si se cumple con el antecedente de la regla; es decir, la probabilidad de que la regla sea correcta. Diferencia de fiabilidad absoluta con el anterior: la proporción de las medidas del nivel de confianza posteriores y anteriores (con y sin los elementos del antecedente). Mide cuán mayor (o menor) es la probabilidad del consecuente de una regla cuando el lado izquierdo de la regla es verdadero. Por ejemplo, la regla "si pan, entonces mermelada" no es muy interesante si su nivel de confianza es similar a la regla "si (cualquier elemento), entonces mermelada". Valor de mejora: la proporción de las medidas del nivel de confianza posteriores y anteriores (con y sin los elementos del antecedente). Resultados: se generan (en forma opcional) diversos resultados, entre otros: • Un informe de modelo HTML interactivo que resume las reglas creadas, su métrica y la opción de filtrar reglas interesantes. • Un nuevo conjunto de datos clasificado que crea un conjunto de datos total (un registro por identificador de cesta) y que indica si cada regla seleccionada se cumple para ese grupo de registros. • Las reglas como código instalable en formato Transaction Measurement Language. qsruleminer Sinopsis qsruleminer -ini <archivo de configuración> -output <archivo de reglas> [-force] Descripción: Encuentra reglas de asociación o secuenciamiento. Parámetros: El archivo de configuración controla cómo se ejecuta el proceso de extracción de reglas. Cada línea del archivo puede especificar una de las siguientes opciones. Las líneas que comienzan con # o que no tienen un signo igual (=) se ignoran. (Tenga en cuenta que no se permiten comentarios a la derecha de la línea). Una línea que comienza con eof hace que se ignore el resto del archivo. Por ejemplo, el siguiente archivo ini buscará reglas que muestren un valor de mejora como la medida adicional con al menos tres elementos y como máximo 10, con una fiabilidad mínima de 20%, un soporte mínimo de 5% y una mejora mínima de 25%: Guía de referencia del comando de creación de datos y TML 129 qsruleminer enfoque = C:/association/MarketBasket.ftr task =market basket key fields = TRANS_NO product field = ProductName options = -tr -el -d25 -s5.0 -c20.0 -n10 -m3 eof 130 Parámetro Default (Predeterminada) Descripción focus (obligatorio) La ubicación del enfoque de entrada. task (obligatorio) Especifica la tarea de descubrimiento. Los valores válidos son: segment, market basket, next product key fields (obligatorio) Especifica un campo clave o clave compuesta (una lista de campos separados por comas) que define una cesta. El conjunto de datos de entrada debe estar ordenado con respecto a la clave. product field (obligatorio) Especifica el identificador del campo de producto. El campo debe tener rangos y ser categórico. Cada rango define un producto por separado (para que se pueda usar una jerarquía de rangos categóricos para trabajar en diferentes niveles de detalle en los mismos datos de producto subyacentes). Las claves compuestas no son compatibles. rhs (ninguno) Lista de elementos separada por comas que restringe los elementos que pueden aparecer en la parte derecha (el consecuente) de la regla. Tenga en cuenta que no se permite ningún espacio en blanco excedente; las etiquetas itemA, itemB e itemC deben coincidir exactamente con las etiquetas de rango correspondientes del campo de producto. Portrait Miner 7.1 Capítulo 9: Comandos para construir modelos Parámetro Default (Predeterminada) Descripción timestamp field (ninguno) (solo tarea del siguiente producto) Especifica el campo a utilizar como marca de hora para cada elemento. Debe ser de tipo fecha o entero. No se admiten las claves compuestas de marca de hora. segment fields (ninguno) (solo tarea de segmentos) Especifica una lista de campos separados por comas para utilizar en la tarea de descubrimiento de segmentos. Las etiquetas de rango de los campos especificados corresponderán a los elementos de la tarea de descubrimiento. options (ninguno) Pasa todo lo posterior al signo igual directamente al algoritmo apriori. Las opciones de soporte apriori incluyen (también consulte http://www.borgelt.net/doc/apriori/apriori.html#options): Opción Descripción -tr Descubre reglas de asociación -s<#> Valor de soporte mínimo (valor predeterminado: 10%) -S<#> Valor de soporte máximo: positive: percentage; negative: absolute number (valor predeterminado: 100%) -c<#> Valor de fiabilidad mínimo (valor predeterminado: 80%) -m<#> Cantidad mínima de elementos por regla (valor predeterminado: 1) -n<#> Cantidad máxima de elementos por regla (valor predeterminado: sin límite) -ex No utiliza una medida de evaluación de regla adicional -d<#> Valor mínimo para la medida de evaluación de regla adicional (valor predeterminado: 10%). Guía de referencia del comando de creación de datos y TML 131 qsruleminer Opción Descripción Para especificar la medida de evaluación de regla adicional: 132 -ec Fiabilidad de la regla -ed Diferencia de fiabilidad absoluta con el anterior -el Valor de mejora -ea Diferencia del valor de mejora con 1 -eq Diferencia del cociente de mejora con 1 -ev Convicción -ee Diferencia de convicción con 1 -er Diferencia del cociente de convicción con 1 -ef Factor de certeza -en Medida de Chi cuadrado normalizado -ep Medida de valor de P desde Chi cuadrado -ei Diferencia de información con el anterior -eg Valor de P desde el estadístico G -eb Registro binario del cociente de soporte Portrait Miner 7.1 Capítulo Comandos para trabajar con archivos QMML En esta sección: • • • • • • qsqmmlview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134 qsqmmledit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134 qslt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137 qsqmml2sas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139 qsqmml2sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139 qsqsfmtosas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140 10 qsqmmlview qsqmmlview Sinopsis qsqmmlview -input <archivo QMML de origen> [-prettyprint | -rulesets | -ruleset <ruleset>] Descripción: Visualiza información sobre el archivo QMML de origen: muestra los contenidos en un XML perfectamente formateado (la opción -prettyprint). Muestra información de resumen para todos los conjuntos de reglas del archivo (la opción -rulesets) o muestra información detallada de un conjunto de reglas especificado (la opción -ruleset). Por defecto, qsqmmlview muestra información detallada de todos los conjuntos de reglas del archivo. Argumentos opcionales: además de los argumentos requeridos, qsqmmlview acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si se especifica la opción -rulesets o -ruleset y el archivo QMML no tiene la forma qmml:rules, se produce un error en qsqmmlview. • Si se utiliza la opción -ruleset y el archivo QMML no contiene un conjunto de reglas con el nombre especificado, se produce un error en qsqmmlview. • Para obtener información sobre las reglas y los conjuntos de reglas QMML, consulte Lenguaje de marcado de metadata Quadstone. Ejemplos Verificar cuál de los conjuntos de reglas (si hay alguno) del documento de reglas QMML model.qmml están activados: qsqmmlview -input model.qmml -rulesets Ver los nombres y tipos de los campos de entrada y salida del conjunto de reglas (compilado) OutcomeRules en el documento de reglas QMML model.qmml: qsqmmlview -input model.qmml -ruleset OutcomeRules También consulte XML en Portrait Miner en la página 342 qsqmmledit en la página 134 qsqmmledit Sinopsis qsqmmledit -input <archivo QMML de origen> [-output <archivo QMML de destino>] -addrule <archivo de reglas> 134 Portrait Miner 7.1 Capítulo 10: Comandos para trabajar con archivos QMML qsqmmledit -input <archivo QMML de origen> [-output <archivo QMML de destino>] -addruleset <conjuntos de reglas> <rule> [<reglae> ...] qsqmmledit -input <archivo QMML de origen> [-output <archivo QMML de destino>] -deleteruleset <conjuntos de reglas> qsqmmledit -input <archivo QMML de origen> [-output <archivo QMML de destino>] -parse [-s] qsqmmledit -input <archivo QMML de origen> [-output <archivo QMML de destino>] {-compile | -compile <conjuntos de reglas> [<conjuntos de reglas> ...] } [-l] [-s] qsqmmledit -input <archivo QMML de origen> [-output <archivo QMML de destino>] {-setlive | -setlive <conjuntos de reglas> | -setlive <conjuntos de reglas> true | -setlive <conjuntos de reglas> false} Descripción: modifica el archivo QMML de origen (si no se utiliza la opción -output) al realizar una de las siguientes operaciones: • Agregar una regla del archivo de reglas, que es un archivo XML estándar que contiene elementos <field> o un archivo de intercambio QMML FDL que contiene reglas en elementos <fdl-derivation> y <fdl-function>. A una regla no denominada se le otorga el nombre Rule. Si el archivo QMML de origen no tiene la forma qmml:rules o ya contiene una regla con el mismo nombre que alguna de las reglas del archivo de reglas, se produce un error en qsqmmledit. • Agregar un conjunto de reglas que contenga una o más reglas (ya presentes como elementos <field> en el archivo QMML de origen). Si el archivo QMML de origen no tiene la forma qmml:rules, ya contiene un conjunto de reglas con el nombre de conjunto de reglas especificado o no contiene reglas con todos los nombres especificados, se produce un error en qsqmmledit. • Eliminar un conjunto de reglas (pero no las reglas que contiene). Si el archivo QMML de origen no tiene la forma qmml:rules o no contiene un conjunto de reglas con el nombre especificado, se produce un error en qsqmmledit. • Analizar el archivo. Si utiliza Archivo->Exportar como QMML en Decision Studio para crear el archivo QMML de origen, Portrait Miner analiza el archivo QMML automáticamente. En este caso, no es necesario utilizar el comando -parse. De lo contrario, el comando -parse es un requisito previo para la compilación. Si el archivo QMML no tiene la forma qmml:rules, qsqmmledit no hace nada (excepto que se utilice la opción -s, en cuyo caso se produce un error). Si el archivo QMML de origen tiene la forma qmml:rules, qsqmmledit intenta analizar todas las reglas no analizadas. Si no se puede analizar Guía de referencia del comando de creación de datos y TML 135 qsqmmledit una regla, qsqmmledit envía un mensaje de advertencia y continúa con la siguiente regla (excepto que se utilice la opción -s, en cuyo caso se produce un error). • Compilar todos los conjuntos de reglas o los conjuntos de reglas especificados (un requisito previo para la implementación). Si el archivo QMML no tiene la forma qmml:rules, qsqmmledit no hace nada (excepto que se utilice la opción -s, en cuyo caso se produce un error). Si no se analiza una regla, se produce un error en qsqmmledit. • Marcar todos los conjuntos de reglas como activos (listos para la implementación) o marcar un conjunto de reglas especificado como activo (true/por defecto) o no (false). Si el archivo QMML de origen no tiene la forma qmml:rules, no contiene un conjunto de reglas con el nombre especificado o no se compila el conjunto de reglas especificado, se produce un error en qsqmmledit. Argumentos opcionales Opción Efecto -l Marca cada conjunto de reglas como activo, a medida que se compilan. -output <archivo QMML de destino> En lugar de modificar el archivo QMML de origen, crea el archivo QMML de destino especificado y le aplica los cambios solicitados. -s Trata el archivo rigurosamente, deshabilitando los conjuntos de reglas vacíos. Cuando se lo utiliza con la opción -parse, se produce un error si el archivo QMML de origen no tiene la forma qmml:rules o si no se puede analizar cualquier regla no analizada del archivo de origen. Cuando se lo utiliza con la opción -compile, se produce un error si el archivo QMML de origen no tiene la forma qmml:rules. Además de estas opciones de línea de comando, qsqmmledit acepta las opciones comunes de todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Para obtener información sobre las reglas y los conjuntos de reglas QMML, consulte Lenguaje de marcado de metadata Quadstone. • Solo se puede analizar una regla si es compatible con la variante RealTime de FDL. Ejemplos Agregar reglas del archivo de intercambio QMML FDL model.xfdl al documento de reglas QMML model.qmml: qsqmmledit -input model.qmml -addrule model.xfdl 136 Portrait Miner 7.1 Capítulo 10: Comandos para trabajar con archivos QMML Asignar una regla Outcome del documento de reglas QMML model.qmml a un nuevo conjunto de reglas OutcomeRules: qsqmmledit -input model.qmml -addruleset OutcomeRules Outcome Implementar el documento de reglas QMML model.qmml al analizar todos los FDL insertados, compilar todos los conjuntos de reglas y marcar el conjunto de reglas OutcomeRules como activo: qsqmmledit -input model.qmml -parse qsqmmledit -input model.qmml -compile qsqmmledit -input model.qmml -setlive OutcomeRules También consulte XML en Portrait Miner en la página 342 qslt en la página 137 qsqmmlview en la página 134 qslt Sinopsis qslt {-input <archivo de origen> | -input -} [-output <archivo de destino> | -output -] [[-source <tipo de origen>] [-target <tipo de destino>] | -transform <transformación denominada>] [-spec <archivo de especificación>] Descripción: trasforma el archivo de origen especificado o la entrada estándar (con -input-) en un formato diferente al escribir el resultado en una salida estándar por defecto. Por defecto, en el caso de un archivo de origen XML, qslt deduce los tipos de archivo de origen y de destino de las extensiones del nombre de archivo (si las hay) y de los contenidos del archivo. Luego intenta buscar y aplicar una transformación que coincida con estos tipos. Si no existe ninguna transformación o existe más de una transformación posible, el comando no hace nada, excepto emitir un mensaje de error, y se produce el fallo. Las transformaciones estándar que coinciden con los tipos de archivo origen y de destino son: • Desde fdl (una expresión FDL o un conjunto de instrucciones createTML) hacia qmml:expressions (FDL totalmente analizado en QMML) • Desde fdl (una expresión FDL o un conjunto de instrucciones create TML) hacia qmml:x-fdl (formato de intercambio QMML FDL) y viceversa • Desde qmml:expressions (FDL totalmente analizado en QMML) hacia qmml:x-fdl (formato de intercambio QMML FDL) • Desde qmml:rules (formato de reglas QMML) hacia fdd (formato de descripción de datos planos) Guía de referencia del comando de creación de datos y TML 137 qslt La transformación estándar restante es la transformación denominada prettyprint, que transforma XML arbitrario en XML perfectamente formateado (con saltos de línea y sangrías). Solo se lo puede elegir al utilizar la opción -transform. Argumentos opcionales Opción Efecto -output <archivo de destino> Escribe los datos transformados en este archivo de destino (al sobrescribir cualquier archivo existente con el mismo nombre). -output - Escribe los datos transformados en la salida estándar (la opción predeterminada si no se especifica la opción -output). -source <tipo de origen> Considera solo las transformaciones que coincidan con este tipo de origen (al anular un tipo de origen deducido, si lo hay). Se debe especificar esta opción si qslt está leyendo desde una entrada estándar. -spec <archivo de especificación> Ubica la transformación solicitada en este archivo, ignorando las transformaciones estándar y cualquier personalización que se aplique a todo el sistema o esté especificada por el usuario. -target <tipo de destino> Considera solo las transformaciones que coincidan con este tipo de destino (al anular un tipo de destino deducido, si lo hay). Se debe especificar esta opción si qslt está escribiendo en una salida estándar. -transform <transformación denominada> Utiliza la transformación denominada en lugar de seleccionar una transformación según los tipos de origen y de destino. Además de estas opciones de línea de comando, qslt acepta las opciones comunes a todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Al convertir entre el tipo fdl y el tipo QMML, las instrucciones create TML corresponden a derivaciones de campos denominados en QMML, mientras que las expresiones FDL simples corresponden a derivaciones de archivos no denominados en QMML. • La conversión desde qmml:rules hacia el tipo fdd omite los campos derivados. • Además de los tipos de transformación estándar, se pueden definir transformaciones personalizadas que se apliquen a todo el sistema o a un usuario en particular. Las transformaciones personalizadas pueden aceptar opciones de línea de comando adicionales. • Para obtener información detallada sobre las formas QMML qmml:expressions, qmml:rules, y qmml:x-fdl, consulte Lenguaje de marcado de metadata Quadstone. Ejemplos 138 Portrait Miner 7.1 Capítulo 10: Comandos para trabajar con archivos QMML Transformar la metadata de campos representada por el archivo FDD model.fdd en un documento de reglas QMML "vacío" model.qmml (que describa un conjunto de campos, pero que no contenga ninguna regla), al utilizar una transformación especificada por el usuario descrita en el archivo ext/qmml/qslt.xml: qslt -source fdd -target qmml:rules -input model.fdd -output model.qmml -spec ext/qmml/qslt.xml Transformar una expresión FDL del archivo model.fdl en formato de intercambio QMML FDL, al escribir el resultado en el archivo model.xfdl: qslt -source fdl -target qmml:x-fdl -input model.fdl -output model.xfdl También consulte XML en Portrait Miner en la página 342 qsqmmledit en la página 134 qsqmml2sas Sinopsis qsqmml2sas <archivo QMML> Descripción: Convierte un archivo QMML en un archivo SAS que tiene una instrucción SAS independiente para cada derivación de campo. Nota: • El comando es experimental. • Se puede acceder a la mayoría de las funciones del comando de creación de datos qsqmml2sas mediante el cuadro de diálogo Convertir a SAS de Portrait Miner. Ejemplo Convertir model.qmml en model.sas: qsqmml2sas model.qmml qsqmml2sql Sinopsis qsqmml2sql <archivo QMML> {Oracle | Teradata V2Rx | MS SQL Server} <tabla de origen> [<campo> [, <campo> ... ]]} Descripción: utiliza un tipo de base de datos compatible y una tabla de origen para convertir un archivo QMML en un archivo SQL que tenga una instrucción de SQL SELECT independiente para cada derivación de campo. Argumentos opcionales Guía de referencia del comando de creación de datos y TML 139 qsqsfmtosas Opción Efecto <campo> [, <campo> ... ] Convierte solo los campos derivados. Nota: • El comando es experimental. • Se puede acceder a la mayoría de las funciones del comando de creación de datos qsqmml2sql mediante el cuadro de diálogo Convertir en SQL de Portrait Miner. Ejemplo Convertir model.qmml en model.sql, crear instrucciones SELECT para el Servidor SQL de Microsoft y utilizar prod.customer como la tabla de origen para cualquier puntaje. qsqmml2sas model.qmml "MS SQL Server" prod.customer qsqsfmtosas Sinopsis qsqsfmtosas <archivo de metadata> Descripción: Convierte derivaciones de un archivo de metadata en un archivo SAS que tiene una instrucción SAS independiente para cada derivación de campo. Nota: • El comando es experimental. • Se puede acceder a la mayoría de las funciones del comando de creación de datos qsqsfmtosas mediante el cuadro de diálogo Convertir a SAS de Portrait Miner. Ejemplo Convertir metadata.qsfm en metadata.sas: qsqsfmtosas metadata.qsfm 140 Portrait Miner 7.1 Capítulo Otros comandos En esta sección: • qsmapgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142 11 qsmapgen qsmapgen Sinopsis qsmapgen -input <jerarquía categórica> [-input <jerarquía categórica> ...] -name <nombre de mapa> -output <directorio> [-overwrite] [-style radial_drill | -style radial_layers] Descripción: A partir de uno o más archivos de jerarquía categórica (en general con la extensión de nombre de archivo .hrc), crea una representación de las jerarquías categóricas apropiadas para su uso en Decision Studio Visor de Mapa, con una región que corresponda a cada categoría. Crea un mapa o mapas en el directorio especificado, al utilizar el nombre de mapa especificado como la base para los nombres de archivos. Argumentos opcionales Opción Efecto -overwrite Habilita nuevos archivos de mapa mediante las opciones -name y -output para sobrescribir los archivos existentes. Sin la opción -overwrite, si alguno de los archivos de mapa por crear ya existe, el comando no hace nada (excepto emitir una advertencia). -style radial_drill Crea una jerarquía de mapas apropiada para desglosar en el Visor de mapa de Decision Studio, con el mapa del nivel superior (mostrado inicialmente) basado en el rango de granularidad más gruesa de cada jerarquía de rangos categóricos (esta es la opción predeterminada si no se especifica la opción -style). -style radial_layers Crea un mapa independiente para cada nivel de las jerarquías de rangos categóricos, para que un usuario de Decision Studio pueda elegir el grado de borrosidad con el que se visualizarán los campos en el Visor de mapa, aunque sin la opción de desglosar. Además de estas opciones de línea de comando, qsmapgen acepta las opciones comunes de todos los comandos de creación de datos [consulte Opciones estándar de la línea de comandos en la página 21]. Nota: • Si un archivo de jerarquía categórica no especifica una jerarquía correcta, se produce un error en qsmapgen. 142 Portrait Miner 7.1 Capítulo 11: Otros comandos • No se debe usar un valor de campo en más de un archivo de jerarquía categórica. Si se hace, el comportamiento de qsmapgen es indefinido. • Si se especifica un nombre de categoría en más de un archivo de jerarquía categórica o en más de un nivel del mismo archivo, qsmapgen agrega uno o más sufijos a los nombres de región para asegurar que cada nombre sea único. • En el caso de un mapa elaborado mediante -style radial_drill (o sin la opción -style especificada), el mapa del nivel superior consta de los archivos .mif y .mid, denominados con el nombre del mapa especificado. Los mapas detallados en el siguiente nivel de detalle se encuentran en el siguiente subdirectorio. Los mapas del nivel subsiguiente de detalle (si los hay) se encuentran en el siguiente subdirectorio de ese directorio, y así sucesivamente. • Los mapas producidos mediante -style radial_layers constan de pares de archivos .mif y .mid, cada uno denominado con el nombre del mapa dado junto con un sufijo numérico que corresponde al nivel de la jerarquía. • Al utilizar Portrait Miner, se puede acceder a la mayoría de las funciones de qsmapgen mediante del cuadro de diálogo Crear mapa de categorías. . Ejemplos: dado el archivo de jerarquía categórica Referrer.hrc, que contiene los siguientes elementos: B, Banner Ad (aviso publicitario), Comercialización D, Direct (directo), Directo E, E-mail Link (enlace de correo electrónico), Comercialización G, Google, Motor de búsqueda M, MSN, Motor de búsqueda Y, Yahoo, Motor de búsqueda L, Lycos, Motor de búsqueda y el archivo de jerarquía categórica PurchasePage.hrc, que contiene los siguientes elementos: 01, Ropa de caballero 02, Mujeres 03, Niños 04, Hogar crear un archivo de mapa clickthru.mif (y los archivos compatibles) apropiado para desglosar, en un nuevo directorio webmaps: qsmapgen -input Referrer.hrc -input PurchasePage.hrc -output webmaps -name clickthru El mapa del nivel superior tiene las siguientes regiones (donde las "puntas" de la circunferencia indican regiones en las que se puede desglosar hasta el siguiente nivel): Guía de referencia del comando de creación de datos y TML 143 qsmapgen Al desglosar en la región "SearchEngine", se genera un mapa con las siguientes regiones: Alternativamente puede crear archivos de mapa independientes clickthru_layer_1.mif y clickthru_layer_2.mif (y los archivos compatibles) en el directorio webmaps: qsmapgen -input Referrer.hrc -input PurchasePage.hrc -output webmaps -name clickthru_layer -style radial_layers El mapa clickthru_layer_1.mif tiene las siguientes regiones: 144 Portrait Miner 7.1 Capítulo 11: Otros comandos y el mapa clickthru_layer_2.mif tiene las siguientes regiones: Guía de referencia del comando de creación de datos y TML 145 Capítulo Lenguaje de medición de transacciones En esta sección: • Acerca de Transaction Measurement Language . . . . . .148 • Sintaxis de TML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148 • Palabras reservadas en TML . . . . . . . . . . . . . . . . . . . . . .149 12 Acerca de Transaction Measurement Language Acerca de Transaction Measurement Language Transaction Measurement Language (TML) es una recopilación de envolturas sintácticas livianas alrededor de expresiones FDL, que se utiliza para especificar derivaciones y agregaciones de campo junto con los asistentes Derivar campos y Agregar registros asistentes, y los comandos de creación de datos de Portrait Miner qsderive, qsmeasure, qstrack y qsselect. También consulte Acerca del lenguaje de derivación de campos (FDL) en la página 182 qsderive en la página 63 qsmeasure en la página 66 qsselect en la página 73 qstrack en la página 70 Sintaxis de TML en la página 148 Sintaxis de TML Un archivo de derivaciones, rastreos, selecciones o agregaciones incluye una o más instrucciones create de TML, mientras que un archivo de estadísticas incluye una o más instrucciones calculate de TML. • TML es un lenguaje que distingue mayúsculas de minúsculas: • Las palabras clave de TML (create, by, string etc.) se escriben en minúsculas, a excepción de STATISTIC. • Los nombres de todas las funciones de agregación [consulte Funciones de agregación para mediciones y derivaciones en la página 162] se escriben en minúsculas. • Los nombres Average, average, y AVERAGE hacen referencia a distintos campos o estadísticas. • Los nombres de campos y estadísticas deben comenzar con una letra ("A" — "Z" o "a" — "z"), incluir solamente letras, dígitos y guión bajo ("_") y no tener más de 128 caracteres; como opción pueden estar entre comillas simples, por ejemplo, 'CustomerID'. Debe encerrar el nombre de un campo o estadística en comillas simples si coincide con una palabra reservada de TML o FDL, o si es diferente de una sólo en fuente. • La sintaxis de TML se describe utilizando diagramas de ferrocarriles similares al siguiente: Siempre y cuando siga las flechas y no marche hacia atrás, cualquier ruta a través del diagrama del ferrocarril lleva a TML de sintaxis válida (aunque no necesariamente significativo): 148 Portrait Miner 7.1 Capítulo 12: Lenguaje de medición de transacciones • Las palabras en cuadros con forma de óvalo/circulares (como create) son palabras clave de TML; debe escribirlas exactamente como aparecen. • También debe escribir la puntuación en los cuadros con forma de óvalo (como ":" y ":=") exactamente como aparece (no puede agregar espacios entre ":" y "=" en ":="). • No olvide el punto y coma que finaliza cada instrucción de TML. • Los términos en cuadros rectangulares (como expression) hacen referencia a otros diagramas de ferrocarriles o a formas descritas en otro lugar en palabras; no debe escribirlos literalmente. • TML es un lenguaje de formato libre: puede separar líneas o insertar espacios adicionales entre elementos sintácticos (en cuadros con forma de óvalo/circulares en diagramas de ferrocarriles) sin afectar la interpretación de un archivo de derivaciones, rastreos, selecciones, agregaciones o estadísticas. • Además de introducir espacios entre elementos sintácticos, puede incluir comentarios, que comienzan con una barra doble ("//") y continúan hasta el final de la misma línea. • Siempre que la sintaxis de TML requiera una expresión, puede utilizar cualquier expresión FDL [consulte Expressions (Expresiones) en la página 186], excepto que una expresión que implique una palabra reservada de TML, un punto y coma o llaves {...} debe encerrarse entre paréntesis (...). También consulte Acerca de Transaction Measurement Language en la página 148 Evaluación del enfoque de estadísticas: la instrucción de calcular en la página 158 Definición de campos: la instrucción create en la página 152 Palabras reservadas en FDL en la página 206 Palabras reservadas en TML en la página 149 Palabras reservadas en TML Los siguientes símbolos son palabras reservadas en TML: aggregation, all, and, as, auto, automatic, bin, binning, bool, boolean, by, calculate, constant, create, crosstab, fecha, default, description, dimension, double, drl, enum, except, fields, file, float, format, from, full, function, group, include, inplace, input, int, integer, join, left, long, merge, meta, modifiable, normal, on, open outer, outfile, output, parameter, pragma, real, ref, reference, rename, right, separate_functions, short, show, show_empty_segments, show_summaries, sort, state, statistic, strbytes, string, suppress, table, temp, temporary, track, tracker, view, where Para utilizar una palabra reservada o una palabra diferente únicamente en fuente de una palabra reservada, como un nombre de campo o estadística en TML o como un identificador [consulte Expressions (Expresiones) en la página 186] en FDL, debe encerrarla con comillas simples, por ejemplo, 'Date'. También consulte Guía de referencia del comando de creación de datos y TML 149 Palabras reservadas en TML Acerca de Transaction Measurement Language en la página 148 Palabras reservadas en FDL en la página 206 150 Portrait Miner 7.1 Capítulo Instrucciones TML En esta sección: • Definición de campos: la instrucción create . . . . . . . . .152 • Uso de funciones de agregación y las cláusulas where y default . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 • División de agregaciones: la cláusula by . . . . . . . . . . . .156 • Evaluación del enfoque de estadísticas: la instrucción de calcular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 13 Definición de campos: la instrucción create Definición de campos: la instrucción create La instrucción create define un campo por derivación o agregación, según el contexto en el que aparece. Derivaciones: el archivo de derivaciones para qsderive, o la ventana Derivar campos equivalente, el archivo de rastreos para qstrack y el archivo de selecciones para qsselect deben incluir instrucciones create de la siguiente forma: El archivo de agregaciones para qsmeasure o la ventana Agregar registros equivalente puede como opción incluir instrucciones create de la siguiente forma: En ambos casos, la instrucción create define un campo llamado nombre en relación con una expresión FDL [consulte la sección Expressions (Expresiones) en la página 186]. El tipo de datos del campo es el tipo de datos de la expresión, a menos que los sobrescriba especificando un tipo compatible [consulte la sección Tipos de datos en la página 184]. • Para cada instrucción create sucesiva en el archivo de derivaciones, qsderive o la ventana Derivar campos deriva un campo en el enfoque de salida utilizando la expresión dada, que puede hacer referencia a campos en el enfoque de origen y a campos derivados más temprano en el archivo de derivaciones. • Para cada instrucción create sucesiva en el archivo de rastreos, qstrack deriva un campo utilizando la expresión dada, que puede hacer referencia a campos en el enfoque de origen y a campos derivados más temprano en el archivo de rastreos, así como también a estadísticas de enfoque definidas en cualquier archivo de estadísticas. La expresión comúnmente implica variables de estado [consulte la sección Variables en la página 190]. • Dado un archivo de selecciones, qsselect deriva un campo correspondiente de forma predeterminada con la primera instrucción create e ignora cualquier otra instrucción en el archivo. La expresión de definición debe ser de tipo booleano (o compatible). • Para cada instrucción create sucesiva de esta forma en el archivo de agregaciones, qsmeasure o la ventana Agregar registros deriva un campo en el enfoque de salida utilizando la expresión dada, que puede hacer referencia a campos derivados anteriormente en el archivo de agregaciones y a estadísticas de enfoque definidas en cualquier archivo de estadísticas. • Una instrucción temporary tiene el mismo efecto que la instrucción create, excepto que el campo no aparece en el enfoque de salida. No obstante, aún puede hacer referencia al campo temporary en las expresiones siguientes del archivo de agregaciones. Agregaciones El archivo de agregaciones para qsmeasure o la ventana Agregar registros equivalente puede incluir instrucciones create de la siguiente forma: 152 Portrait Miner 7.1 Capítulo 13: Instrucciones TML Para cada instrucción create de esta forma en el archivo de agregaciones, qsmeasure o la ventana Agregar registros deriva eficazmente un campo virtual correspondiente a la expresión siguiendo la función de agregación. Esta expresión puede hacer referencia a campos en el enfoque de origen. Después de derivar el campo virtual, qsmeasure o la ventana Agregar registros aplica la función de agregación [consulte la sección Uso de funciones de agregación y las cláusulas where y default en la página 154]. El tipo de datos por defecto de los campos resultantes depende de la función de agregación y los valores, operadores y funciones implicados en la expresión a la que se aplica, pero puede sobrescribirlo especificando un tipo compatible. Una instrucción temporary tiene el mismo efecto que la instrucción create, excepto que el campo no aparece en el enfoque de salida. No obstante, aún puede hacer referencia al campo temporary en las expresiones siguientes del archivo de agregaciones. Nota: • En qsderive los archivos de derivaciones Derivar campos, archivos de selecciones qsselect y archivos de rastreos qstrack, la expresión puede implicar estadísticas de campos, variables globales y funciones definidas en función de estos. Estas funciones FDL no están disponibles en un archivo de agregaciones qsmeasure o Agregar registros. • Debe colocar paréntesis adicionales en la expresión si incluye un punto y coma, corchetes o una palabra reservada TML [consulte la sección Palabras reservadas en TML en la página 149]. • Cada instrucción create debe comenzar en una nueva línea. Ejemplos Dado el archivo de derivaciones, derivations-customer.tml, que contiene lo siguiente: // Length of standing of customer in months create CustMonths := countwholemonths(StartDate, today()); // A key field of extended length create CustomerID_24 : string(24) := CustomerID; Aplicar estas derivaciones al enfoque RetailCustApril.ftr para crear un nuevo enfoque RetailCustAprilDeriv.ftr: qsderive -derivations derivations-customer.tml -input RetailCustApril.ftr -output RetailCustAprilDeriv.ftr Dado el archivo de selecciones, selections-customer.tml, que contiene lo siguiente: // Select male customers aged between 18 and 65 inclusive. create Selection := Gender = 1 and Age >= 18 and Age <= 65; Guía de referencia del comando de creación de datos y TML 153 Uso de funciones de agregación y las cláusulas where y default Aplicar esta selección al enfoque RetailCustApril.ftr para crear un nuevo enfoque RetailCustAprilSelection.ftr: qsselect -selections selections-customer.tml -input RetailCustApril.ftr% -output RetailCustAprilSelection.ftr Dado el archivo de agregaciones, aggregations-mostRecent.tml, que contiene lo siguiente: temporary LastPurchase := max(PurchaseDate); create AvgTransVal := mean(Amount - 0.01 * PointsRedeemed); create NumTrans := count(); create MonthsSinceLastPurchase := countwholemonths(LastPurchase, today()); Aplique estas agregaciones al enfoque RetailTransApril.ftr para crear un enfoque orientado al cliente RetailAggRecentApril: qsmeasure -aggregations aggregations-mostRecent.tml -input RetailTransAprilSorted.ftr -output RetailAggRecentApril% -keys CustomerID También consulte Funciones de agregación para mediciones y derivaciones en la página 162 qsderive en la página 63 qsmeasure en la página 66 qsselect en la página 73 qstrack en la página 70 División de agregaciones: la cláusula by en la página 156 Uso de funciones de agregación y las cláusulas where y default Puede agregar registros utilizando qsmeasure o la ventana Agregar registros equivalente. Cuando utiliza una instrucción create en un archivo de agregaciones [consulte la sección Definición de campos: la instrucción create en la página 152], qsmeasure o la ventana Agregar registros equivalente deriva eficazmente un campo virtual que corresponde a la expresión entre paréntesis que sigue a la función de agregación. Conceptualmente, qsmeasure o la ventana Agregar registros divide los registros en el enfoque de origen (aumentado por el campo virtual) en grupos de registros con el mismo valor de campo clave. Para cada grupo de registros (que corresponden a un único valor de campo clave), qsmeasure o la ventana Agregar registros aplica la función de agregación a los valores del campo virtual dentro de estos registros para producir un único valor de resultado. 154 Portrait Miner 7.1 Capítulo 13: Instrucciones TML Los valores de resultado de todos los grupos en conjunto constituyen un nuevo campo, con el nombre determinado en la instrucción create, a menos que la instrucción create incluya una cláusula by [consulte la sección División de agregaciones: la cláusula by en la página 156]. Dentro de cada grupo de registros con un valor de campo clave común, determinadas funciones de agregación ignoran los registros para los que el campo virtual incluye null [consulte la sección El valor null en la página 184]. Si la instrucción create incluye una cláusula where, la función de agregación ignora registros para los que la expresión asociada se evalúa en 0 ("false"). Esta expresión puede hacer referencia a campos en el enfoque de origen. Dado que las funciones de agregación pueden ignorar algunos de los registros en un grupo con un valor de campo clave, es posible que se omitan todos los registros en el grupo. Muchas funciones de agregación regresan el valor null en este caso. Al incluir una cláusula default, puede especificar una expresión constante que se evaluará en lugar de la agregación en el caso de que devuelva el valor null. Nota: Cuando utiliza la función sum de agregación [consulte la sección sum (un argumento) en la página 179], comúnmente debe especificar una suma predeterminada de 0. Si no utiliza una cláusula default, la suma de una selección vacía de registros es null, lo probablemente no será lo que desea. Ejemplos Dado el archivo de agregaciones, aggregations-purchaseSummary.tml, que incluye lo siguiente: create create create create firstPurchaseDate := first(PurchaseDate); commonPaymentMethod := mode(PaymentMethod); Spend := sum(Amount) default 0; SpendInStore800 := sum(Amount) where Store = "0800" default 0; create proportionSpendInStore800 := SpendInStore800 / Spend; create NumTransCRRedeemed := count() where PaymentMethod = "CR" and not isnull(PointsRedeemed); Aplique estas agregaciones al enfoque RetailTransApril.ftr para crear un enfoque orientado al cliente RetailAggSummaryApril: qsmeasure -aggregations aggregations-purchaseSummary.tml -input RetailTransAprilSorted.ftr -output RetailAggSummaryApril -keys CustomerID Guía de referencia del comando de creación de datos y TML 155 División de agregaciones: la cláusula by También consulte Funciones de agregación para mediciones y derivaciones en la página 162 Expressions (Expresiones) en la página 186 División de agregaciones: la cláusula by El archivo de agregaciones para qsmeasure o la ventana Agregar registros equivalente incluye una secuencia de instrucciones create [consulte Definición de campos: la instrucción create en la página 152]. Como parte de una instrucción create, también puede incluir una cláusula by para desglosar su agregación de acuerdo con la aplicación de una función de división o la función bin a una expresión derivada de otros campos. Para cada posible entero i devuelto por la función de división o función bin, qsmeasure o la ventana Agregar registros crea un campo separado, que incluye valores agregados de solo estos registros para los que se evalúa la aplicación de la función en i. El nombre de cada uno de estos campos está formado por el nombre en la instrucción create junto con un sufijo que depende de la función utilizada para la división de la agregación. • Están disponibles las siguientes funciones de división incorporadas (con sufijos de nombres de campo determinados que corresponden a sucesivos valores de la función): Función Sufijos de nombres de campos day "_1," "_2," "_3," ..., "_31" dayofweek "Sun," "Mon," "Tue," ..., "Sat" hour "0000," "0100," "0200" ..., "2300" isnull "NonNull," "Null" match "MisMatch," "Match" member "NotMember," "Member" minute "0," "1," "2," ..., "59" month "Jan," "Feb," "Mar," ..., "Dec" second "0," "1," "2," ..., "59" sgn "Negative," "Zero," "Positive" strmember "NotMember," "Member" weekofyear "_1," "_2," "_3," ..., "_53" • Puede utilizar la función bin para aplicar un rango FDL a una expresión. Si se utiliza como una función de división, la función bin da lugar a sufijos de nombres ce campos "_1," "_2," ..., "_n," "_null," y "_other" (donde n depende del número de rangos en la creación de rangos). 156 Portrait Miner 7.1 Capítulo 13: Instrucciones TML • También puede definir su propia función de división [consulte la sección Funciones definidas por el usuario en la página 192]. El atributo element_names define los sufijos de nombres de campos correspondientes a los valores de devolución de la función. Ejemplos Dado el archivo de agregaciones, aggregations-builtinSplit.tml, que incluye lo siguiente: create numberPurchases := count(); create numberPurchasesOn_ := count() by dayofweek(PurchaseDate); create proportionPurchases_Mon := numberPurchasesOn_Mon / numberPurchases; create purchaseAmountIn_ := sum(Amount) by month(PurchaseDate) default 0; Aplique estas agregaciones al enfoque RetailTransApril.ftr para crear un enfoque orientado al cliente RetailDateSplitsApril.ftr que incluya campos CustomerID, numberPurchases, numberPurchasesOn_Sun, numberPurchasesOn_Mon, ..., numberPurchasesOn_Sat, proportionPurchases_Mon, y purchaseAmountIn_Jan, purchaseAmountIn_Feb, ..., purchaseAmountIn_Dec: qsmeasure -aggregations aggregations-builtinSplit.tml -keys CustomerID -input RetailTransApril.ftr -output RetailDateSplitsApril.ftr Dado el archivo de agregaciones, aggregations-binSplit.tml, que incluye lo siguiente: create numberPurchasesAmountBand := count() by bin(EqualRange(20,100,4),Amount); create numberPurchasesDateBand := count() by bin(PrePost(todate(19990401), todate(19990501), todate(19990601)), PurchaseDate); create ratioPrePost := numberPurchasesDateBand_3 / numberPurchasesDateBand_2; Aplique estas agregaciones al enfoque RetailTransApril.ftr para crear un enfoque orientado al cliente, RetailRangeSplitsApril.ftr, que incluye campos CustomerID, numberPurchasesAmountBand_1, numberPurchasesAmountBand_2, ..., numberPurchasesAmountBand_6, numberPurchasesAmountBand_null, numberPurchasesAmountBand_other (correspondiente a dos rangos finales, cuatro rangos internos y el rango no clasificado y null), numberPurchasesDateBand_1, numberPurchasesDateBand_2, ..., numberPurchasesDateBand_4, numberPurchasesDateBand_null, numberPurchasesDateBand_other y ratioPrePost: qsmeasure -aggregations aggregations-binSplit.tml -keys CustomerID -input RetailTransApril.ftr -output RetailRangeSplitsApril.ftr Dado el archivo de funciones FDL, fdl-functions-storeGroups.fdl, que incluye lo siguiente: function StoreGroupFunction( Store ) [ element_names = "North, South, East, West" ] { case Store = "0000" or Store = "0800" : 1; Store = "0300" or Store = "0600" or Store = "0700" : 2; Store = "0100" or Store = "0400" : 3; default : 4; } Guía de referencia del comando de creación de datos y TML 157 Evaluación del enfoque de estadísticas: la instrucción de calcular Dado el archivo de agregaciones, aggregations-userDefinedSplit.tml, que incluye lo siguiente: create totalPurchases := sum(Amount); create totalPurchasesByStore_ := sum(Amount) by StoreGroupFunction( Store ); create proportionPurchases_North := totalPurchasesByStore_North / totalPurchases; Aplique estas agregaciones al enfoque RetailTransApril.ftr para crear un enfoque orientado al cliente, RetailGroupSplitsApril.ftr, que incluye los campos CustomerID, totalPurchases, totalPurchasesByStore_North, totalPurchasesByStore_South, totalPurchasesByStore_East, totalPurchasesByStore_West y proportionPurchases_North: qsmeasure -aggregations aggregations-userDefinedSplit.tml -library fdl-functions-storeGroups.fdl -keys CustomerID -input RetailTransApril.ftr -output RetailGroupSplitsApril.ftr También consulte Funciones de agregación para mediciones y derivaciones en la página 162 Expressions (Expresiones) en la página 186 Uso de funciones de agregación y las cláusulas where y default en la página 154 Evaluación del enfoque de estadísticas: la instrucción de calcular El archivo de estadística para qsmeasure, la ventana Agregar registros equivalente o qstrack contienen instrucciones calculate del siguiente tipo: La instrucción calculate define una estadística de enfoque llamada nombre en términos de una función de agregación aplicada a una expresión FDL [consulte Expressions (Expresiones) en la página 186], que puede referirse a los campos en el enfoque de origen. Al igual que sucede con una medición [consulte Uso de funciones de agregación y las cláusulas where y default en la página 154], qsmeasure, qstrack o la ventana Agregar registros deriva efectivamente un campo virtual que corresponde a la expresión entre paréntesis que sigue a la función de agregación. La instrucción calculate genera un único valor de resultado, que se obtiene aplicando la función de agregación a todos los valores en el campo virtual. (Por el contrario, la instrucción create en un archivo 158 Portrait Miner 7.1 Capítulo 13: Instrucciones TML de agregaciones genera un campo en el que cada valor se obtiene aplicando la función de agregación a los valores en el campo virtual para un grupo de registros.) El tipo de dato por defecto de una estadística de enfoque depende de la función de agregación y de los valores, los operadores y las funciones involucradas en la expresión a la que este se aplica, pero se lo puede anular si se especifica un tipo compatible [consulte Tipos de datos en la página 184]. Si la instrucción calculate contiene una cláusula where, la función de agregación ignora los registros para los que la expresión asociada evalúa a 0 ("falso"). Esta expresión puede hacer referencia a campos en el enfoque de origen. Una vez que se ha definido una estadística de enfoque en el archivo de estadística, se puede remitir a ella en las expresiones del archivo de agregaciones o del archivo seguidor mediante la forma especial STATISTIC.nombre. Se puede usar esta forma siempre que se desee remitirse a un campo en el archivo seguidor o de enfoque de origen. Ejemplos Dado el archivo de estadísticas, statistics-amount.tml, que contiene lo siguiente: calculate averageAmount := mean(Amount); Dado el archivo de agregaciones, aggregations-statistic.tml, que contiene: create averageSpend := mean(Amount); create bigSpender := averageSpend > STATISTIC.averageAmount; Aplicar estas agregaciones al enfoque RetailTransApril.ftr para crear un enfoque orientado al cliente RetailAprilBigSpenders.ftr que contenga los campos CustomerID, averageSpend y bigSpender: qsmeasure -statistics statistics-amount.tml -aggregations aggregations-statistic.tml -keys CustomerID -input RetailTransApril.ftr -output RetailAprilBigSpenders.ftr También consulte Funciones de agregación para mediciones y derivaciones en la página 162 Guía de referencia del comando de creación de datos y TML 159 Capítulo Funciones de agregación En esta sección: • Funciones de agregación para mediciones y derivaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162 • any . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 • confintlower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 • confintupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 • count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 • countnonnull/countnonnulls . . . . . . . . . . . . . . . . . . . . . .167 • countnull/countnulls . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168 • countunique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169 • countuniquenonnull . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169 • first . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170 • last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171 • max (un argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171 • mean (un argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . .172 • median . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173 • min (un argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173 • mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174 • moderatio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 • percentage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 • percentagerate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 • segindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 • significance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 • stdev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178 • sum (un argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 • variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 14 Funciones de agregación para mediciones y derivaciones Funciones de agregación para mediciones y derivaciones Existen varias funciones de agregación disponibles para su uso en mediciones y derivaciones. Utilizar una función en un contexto de medida significa utilizarlo en un archivo de agregaciones [consulte Uso de funciones de agregación y las cláusulas where y default en la página 154] o archivo de estadísticas [consulte Evaluación del enfoque de estadísticas: la instrucción de calcular en la página 158] para qsmeasure o la ventana equivalente Agregar registros, o en un archivo de estadísticas para qstrack. Utilizar una función en un contexto de derivación significa utilizarla en una derivación de Decision, en el archivo de derivaciones para qsderive o la ventana equivalente Derivar campos, en el archivo de rastreadores para qstrack, o en un archivo de selecciones para qsselect.. Excepto en el caso de que se indique lo contrario, una función de agregación toma un campo único numérico, de cadena o de fecha como un argumento. Funciones de agregación para mediciones y derivaciones Puede utilizar las siguientes funciones de agregación tanto en contextos de medición como en aquellos de derivación: Función Resultado count Cantidad de registros en el grupo/segmento (Esta función no toma un argumento) max [consulte la sección max (un argumento) en El valor no nulo máximo del campo para el la página 171] grupo/segmento (En un contexto de derivación, esta función no acepta como argumento una expresión con valores en cadena). mean [consulte la sección mean (un argumento) La media (promedio común) de los valores no nulos en la página 172] del campo para el grupo/segmento (Esta función requiere como argumento una expresión numérica). min [consulte la sección min (un argumento) en El valor no nulo mínimo del campo para el la página 173] grupo/segmento (En un contexto de derivación, esta función no acepta como argumento una expresión con valores en cadena). 162 Portrait Miner 7.1 Capítulo 14: Funciones de agregación Función Resultado stdev La desviación estándar de los valores no nulos del campo para el grupo/segmento (Esta función requiere como argumento una expresión numérica). sum [consulte la sección sum (un argumento) en La suma de los valores no nulos del campo para la página 179] el grupo/segmento (Esta función requiere como argumento una expresión numérica). variance La varianza de los valores no nulos del campo para el grupo/segmento (Esta función requiere como argumento una expresión numérica). Funciones de agregación solo para mediciones Puede utilizar las siguientes funciones de agregación solamente en un contexto de medición: Función Resultado any Un valor no nulo en el campo, extraído de un registro no nulo arbitrario en el grupo/segmento confintlower Límite inferior de un intervalo de confianza del 95% para la media de un campo del grupo confintupper Límite superior de un intervalo de confianza del 95% para la media de un campo del grupo countnonnull [consulte la sección countnonnull/countnonnulls en la página 167] Cantidad de registros en el grupo para los cuales el campo tiene valores no nulos [consulte la sección El valor null en la página 184] En las derivaciones, en cambio, utilice countnonnulls. countnull [consulte la sección countnull/countnulls en la página 168] Cantidad de registros en el grupo para los cuales el campo contiene valore nulos [consulte la sección El valor null en la página 184] En las derivaciones, en cambio, utilice countnulls. countunique Cantidad de valores únicos que se dan en el campo, posiblemente incluido el valor nulo countuniquenonnull Cantidad de valores únicos, sin incluir el valor nulo, que se dan en el campo first El primer valor no nulo mínimo del campo para el grupo Guía de referencia del comando de creación de datos y TML 163 Funciones de agregación para mediciones y derivaciones Función Resultado last Último valor no nulo mínimo del campo para el grupo median Mediana (valor medio) de los valores no nulos del campo para el grupo (Esta función requiere como argumento una expresión numérica o con valores de cadena). mode Modo (valor más común) de los valores no nulos del campo para el grupo moderatio Proporción de registros no nulos en el grupo que contienen los valores no nulos más comunes del campo Funciones de agregación solo para derivaciones Puede utilizar las siguientes funciones de agregación solamente en un contexto de derivación: Función Resultado countnonnulls [consulte la sección countnonnull/countnonnulls en la página 167] Cantidad de registros en el segmento para el cual el campo tiene valores no nulos [consulte la sección El valor null en la página 184] En las mediciones, en cambio, utilice countnonnull. countnulls [consulte la sección countnull/countnulls en la página 168] Cantidad de registros en el segmento para el cual el campo incluye valores nulos [consulte la sección El valor null en la página 184] En las mediciones, en cambio, utilice countnull. percentage Cantidad de registros en el segmento, como porcentaje de la cantidad total de registros (Esta función no toma un argumento) percentagerate Porcentaje de registros no nulos en el segmento que contienen el valor 1 en el campo El campo solo debe contener los valores 0 y 1. segindex Número positivo que identifica de manera única el segmento que se encuentra dentro de la tabulación cruzada formada por los campos de desglose (Esta función no toma un argumento) significance 164 Significancia estadística de cualquier discrepancia entre el valor medio del campo en el segmento y el valor medio del campo para toda la población, Portrait Miner 7.1 Capítulo 14: Funciones de agregación Función Resultado con un signo que indica la dirección de la desviación (Esta función requiere como argumento una expresión numérica). any Objetivo: Tomar arbitrariamente un valor no nulo de un campo (posiblemente por grupo o por segmento). Sintaxis any(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo del que se elige un valor Resultado Tipo Descripción como entrada Un valor arbitrario no nulo del campo x (posiblemente por grupo o por segmento) Nota: No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 first en la página 170 last en la página 171 confintlower Objetivo: Calcular el límite inferior un intervalo de confianza de 95% para la media de un campo. Sintaxis confintlower(x) Argumentos Guía de referencia del comando de creación de datos y TML 165 confintupper Tipo Nombre Descripción numérico x El campo que debe considerarse Resultado Tipo Descripción real El límite inferior de un intervalo dentro del cual se espera que la media de la población del segmento para el campo x entre dentro de un 95% de confianza Nota: No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 confintupper en la página 166 significance en la página 177 confintupper Objetivo: Calcular el límite superior un intervalo de confianza de 95% para la media de un campo. Sintaxis confintupper(x) Argumentos Tipo Nombre Descripción numérico x El campo que debe considerarse Resultado Tipo Descripción real El límite superior de un intervalo dentro del cual se espera que la media de la población del segmento para el campo x entre dentro de un 95% de confianza Nota: No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. 166 Portrait Miner 7.1 Capítulo 14: Funciones de agregación También consulte Funciones de agregación para mediciones y derivaciones en la página 162 confintlower en la página 165 significance en la página 177 count Objetivo: Recuento del número de registros (posiblemente por grupo o segmento). Sintaxis count() Argumentos Ninguno Resultado Tipo Descripción entero El número de registros (posiblemente por grupo o segmento). También consulte Funciones de agregación para mediciones y derivaciones en la página 162 countnonnull/countnonnulls en la página 167 countnull/countnulls en la página 168 countunique en la página 169 countuniquenonnull en la página 169 countnonnull/countnonnulls Objetivo: Recuento del número de registros para los cuales un campo tiene valores no-nulos (posiblemente por grupo o segmento). Sintaxis countnonnull(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo que debe considerarse Resultado Guía de referencia del comando de creación de datos y TML 167 countnull/countnulls Tipo Descripción entero El número de registros para los cuales el campo x tiene valores no nulos (posiblemente por grupo o segmento). Nota: En tabulaciones cruzadas de Decision Studio y en un contexto de medidas [consulte Funciones de agregación para mediciones y derivaciones en la página 162] esta función es countnonnull, mientras que en un contexto de derivaciones es countnonnulls. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 count en la página 167 countnull/countnulls en la página 168 countunique en la página 169 countuniquenonnull en la página 169 countnull/countnulls Objetivo: Recuento del número de registros para los cuales un campo contiene el valor nulo (posiblemente por grupo o segmento). Sintaxis countnull(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo que debe considerarse Resultado Tipo Descripción entero El número de registros para los cuales el campo x es nulo (posiblemente por grupo o segmento). Nota: En tabulaciones cruzadas de Decision Studio y en un contexto de medidas [consulte Funciones de agregación para mediciones y derivaciones en la página 162] esta función es countnull, mientras que en un contexto de derivaciones es countnulls. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 count en la página 167 168 Portrait Miner 7.1 Capítulo 14: Funciones de agregación countnonnull/countnonnulls en la página 167 countunique en la página 169 countuniquenonnull en la página 169 countunique Objetivo: Recuento del número de valores únicos que ocurren en un campo y que incluyen potencialmente el valor nulo (posiblemente por grupo o segmento). Sintaxis countunique(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo que debe considerarse Resultado Tipo Descripción entero El número de valores únicos, incluyendo nulo, que ocurren en x (posiblemente por grupo o segmento). Nota: No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 count en la página 167 countnonnull/countnonnulls en la página 167 countnull/countnulls en la página 168 countuniquenonnull en la página 169 countuniquenonnull Objetivo: Recuento del número de valores únicos no nulos que ocurren en un campo (posiblemente por grupo o segmento). Sintaxis countuniquenonnull(x) Guía de referencia del comando de creación de datos y TML 169 first Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo que debe considerarse Resultado Tipo Descripción entero El número de valores únicos, excluyendo nulo, que ocurren en x (posiblemente por grupo o segmento). Nota: No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 count en la página 167 countnonnull/countnonnulls en la página 167 countnull/countnulls en la página 168 countunique en la página 169 first Objetivo: Elegir el primer valor no nulo en un campo (posiblemente por grupo o segmento). Sintaxis first(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo del que se elige un valor Resultado 170 Tipo Descripción como entrada El primer valor mínimo no nulo encontrado en el campo x (posiblemente por grupo o segmento) Portrait Miner 7.1 Capítulo 14: Funciones de agregación Nota: No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 any en la página 165 last en la página 171 last Objetivo: Elegir el último valor no nulo en un campo (posiblemente por grupo o segmento). Sintaxis last(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo del que se elige un valor Resultado Tipo Descripción como entrada El último valor no nulo encontrado en el campo x (posiblemente por grupo o segmento) Nota: No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 any en la página 165 first en la página 170 max (un argumento) Objetivo: Calcular el valor máximo no nulo en un campo (posiblemente por grupo o segmento). Guía de referencia del comando de creación de datos y TML 171 mean (un argumento) Sintaxis max(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo cuyos valores deben compararse Resultado Tipo Descripción como entrada El valor máximo no nulo en el campo x (posiblemente por grupo o segmento) Nota: • No se debe confundir esta función aggregation con la función multi-argument [consulte max (dos o más argumentos), maxnonnull en la página 282] del mismo nombre. • En un contexto de derivación, esta función no acepta como argumento un campo con valor de cadena o de fecha. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 min (un argumento) en la página 173 mean (un argumento) Objetivo: Calcular el promedio (media común) de los valores no nulos de un campo (posiblemente por grupo o segmento). Sintaxis mean(x) Argumentos Tipo Nombre Descripción numérico x El campo cuya media debe calcularse Resultado Tipo Descripción real La media de los valores no nulos en un campo x (posiblemente por grupo o segmento) Nota: No se debe confundir esta función aggregation con la función multi-argument [consulte mean (dos o más argumentos), meannonnull en la página 283] del mismo nombre. 172 Portrait Miner 7.1 Capítulo 14: Funciones de agregación También consulte Funciones de agregación para mediciones y derivaciones en la página 162 median en la página 173 mode en la página 174 median Objetivo: Calcular la mediana (valor mediano) de los valores no nulos de un campo (posiblemente por grupo o segmento). Sintaxis median(x) Argumentos Tipo Nombre Descripción entero, real o cadena x El campo cuya mediana debe calcularse Resultado Tipo Descripción como entrada La mediana de los valores no nulos en un campo x (posiblemente por grupo o segmento) Nota: No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 mean (un argumento) en la página 172 mode en la página 174 min (un argumento) Objetivo: Calcular el valor mínimo no nulo en un campo (posiblemente por grupo o segmento). Sintaxis min(x) Argumentos Guía de referencia del comando de creación de datos y TML 173 mode Tipo Nombre Descripción entero, real, fecha, o cadena x El campo cuyos valores deben compararse Resultado Tipo Descripción como entrada El valor mínimo no nulo en el campo x (posiblemente por grupo o segmento) Nota: • No se debe confundir esta función aggregation con la función multi-argument [consulte min (dos o más argumentos), minnonnull en la página 283] del mismo nombre. • En un contexto de derivación, esta función no acepta como argumento un campo con valor de cadena o de fecha. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 max (un argumento) en la página 171 mode Objetivo: Calcular la moda (el valor más común) de los valores no nulos de un campo (posiblemente por grupo o segmento). Sintaxis mode(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo cuya moda debe calcularse Resultado Tipo Descripción como entrada El modo de los valores no nulos en un campo x (posiblemente por grupo o segmento) Nota: • En el caso de un empate en el valor más común, la función indica el valor que empata menos, la fecha más temprana que empata o la primera cadena en orden alfabético que empata . • No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. 174 Portrait Miner 7.1 Capítulo 14: Funciones de agregación También consulte Funciones de agregación para mediciones y derivaciones en la página 162 mean (un argumento) en la página 172 median en la página 173 moderatio en la página 175 moderatio Objetivo: Calcular la proporción de registros no nulos que contienen el valor no nulo más común de un campo (posiblemente por grupo o segmento). Sintaxis moderatio(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El campo cuyo coeficiente de moda debe calcularse Resultado Tipo Descripción real El coeficiente de moda del campo x (posiblemente por grupo o segmento) Nota: No puede utilizar esta función en una derivación de Decision Studio, ni en el archivo de derivaciones de qsderive ni en la ventana Derivar campos equivalente, ni en el archivo de rastreo de qstrack, ni en un archivo de selecciones de qsselect. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 mode en la página 174 percentage Sintaxis percentage() Objetivo: Calcular el número de registros en un segmento de tabulación cruzada, como porcentaje del total. Argumentos Ninguno Guía de referencia del comando de creación de datos y TML 175 percentagerate Resultado Tipo Descripción real El porcentaje de registros (posiblemente por grupo o segmento). Nota: Sólo puede utilizar esta función en una derivación de Decision Studio, en el archivo de derivaciones de qsderive o en la ventana Derivar campos equivalente en el archivo de rastreo qstrack o en un archivo de selecciones de qsselect. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 percentagerate Objetivo: Para un campo binario (1/0), calcular la proporción de registros no nulos que contienen el valor 1, como porcentaje. Sintaxis percentagerate(x) Argumentos Tipo Nombre Descripción numérico x El campo binario que debe considerarse Resultado Tipo Descripción real El porcentaje de registros en un campo binario que tienen el valor 1 (posiblemente por grupo o segmento) Nota: Esta función no puede usarse en archivo de agregación [consulte Uso de funciones de agregación y las cláusulas where y default en la página 154] ni en un archivo de estadísticas [consulte Evaluación del enfoque de estadísticas: la instrucción de calcular en la página 158] para qsmeasure ni en la ventana equivalente de Agregar registros ni en un archivo de estadísticas para qstrack. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 176 Portrait Miner 7.1 Capítulo 14: Funciones de agregación segindex Objetivo: Generar un número de índice que represente un segmento. Sintaxis segindex() Argumentos Ninguno Resultado Tipo Descripción entero Un número positivo que identifica únicamente a un segmento dentro de una tabulación cruzada. Nota: • Si se ocultan segmentos nulos, sin clasificar o vacíos en una vista de tabulación cruzada, aún así reciben un índice de segmento, por lo que podrían aparecer huecos en la secuencia de índices visibles. • Esta función no puede usarse en archivo de agregación [consulte Uso de funciones de agregación y las cláusulas where y default en la página 154] ni en un archivo de estadísticas [consulte Evaluación del enfoque de estadísticas: la instrucción de calcular en la página 158] para qsmeasure ni en la ventana equivalente de Agregar registros ni en un archivo de estadísticas para qstrack. Ejemplo R–2: Marcación de deciles aproximados Se pueden crear rangos en un campo "myfield" en diez rangos de igual población y luego derivar un campo "decile": segindex() by myfield También consulte Funciones de agregación para mediciones y derivaciones en la página 162 bin en la página 326 significance Objetivo: Calcular la significancia estadística de cualquier discrepancia entre el valor medio de un campo para un segmento de una tabulación cruzada y el valor medio del mismo campo para toda la población. Sintaxis significance(x) Argumentos Guía de referencia del comando de creación de datos y TML 177 stdev Tipo Nombre Descripción numérico x El campo que debe considerarse Resultado Tipo Descripción real Un valor entre -1 and 1, cuyo signo indica la dirección en la cual la media del segmento de x se desvía de la media de la población de x y cuyo valor absoluto indica la significación estadística de tal desviación, teniendo en cuenta el tamaño del segmento. Nota: Esta función no puede usarse en archivo de agregación [consulte Uso de funciones de agregación y las cláusulas where y default en la página 154] ni en un archivo de estadísticas [consulte Evaluación del enfoque de estadísticas: la instrucción de calcular en la página 158] para qsmeasure ni en la ventana equivalente de Agregar registros ni en un archivo de estadísticas para qstrack. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 confintlower en la página 165 confintupper en la página 166 stdev Objetivo: Calcular la desviación estándar de los valores no nulos de un campo (posiblemente por grupo o segmento). Sintaxis stdev(x) Argumentos Tipo Nombre Descripción numérico x El campo cuya desviación estándar debe computarse Resultado 178 Tipo Descripción real La desviación estándar de los valores no nulos en un campo x (posiblemente por grupo o segmento) Portrait Miner 7.1 Capítulo 14: Funciones de agregación También consulte Funciones de agregación para mediciones y derivaciones en la página 162 sum (un argumento) Objetivo: Calcular la suma de los valores no nulos en un campo (posiblemente por grupo o segmento). Sintaxis sum(x) Argumentos Tipo Nombre Descripción numérico x El campo cuyos valores se sumarán Resultado Tipo Descripción como entrada La suma de los valores no nulos en el campo x (posiblemente por grupo o segmento) Nota: • No se debe confundir esta función aggregation con la función multi-argument [consulte sum (dos o más argumentos), sumnonnull en la página 288] del mismo nombre. • Tenga en cuenta que cuando la función sum de agregación se aplica a un conjunto vacío de registros (por ejemplo, como consecuencia del filtrado de registros), el resultado es null. Normalmente debería sobrescribir este comportamiento mediante la configuración del valor predeterminado en 0. También consulte Funciones de agregación para mediciones y derivaciones en la página 162 variance Objetivo: Calcular la varianza estadística de los valores no nulos de un campo (posiblemente por grupo o segmento). Sintaxis variance(x) Argumentos Guía de referencia del comando de creación de datos y TML 179 variance Tipo Nombre Descripción numérico x El campo cuya varianza debe computarse Resultado Tipo Descripción real La varianza de los valores no nulos en el campo x (posiblemente por grupo o segmento) También consulte Funciones de agregación para mediciones y derivaciones en la página 162 180 Portrait Miner 7.1 Capítulo Lenguaje de derivación de campos En esta sección: • Acerca del lenguaje de derivación de campos (FDL) . .182 15 Acerca del lenguaje de derivación de campos (FDL) Acerca del lenguaje de derivación de campos (FDL) Field Derivation Language (FDL) es un lenguaje simple que permite especificar la creación de campos nuevos en enfoques de Portrait Miner. Puede utilizar FDL en Visor de Tablas en Decision Studio, los asistentes Derivar campos y Agregar registros asistentes de configuración y los comandos de creación de datos de Portrait Miner: qsderive, qsmeasure, qstrack y qsselect. Puede emplear FDL para lo siguiente: • • • • Transformar, combinar y realizar una variedad de otros cálculos en campos existentes en un enfoque Dividir un enfoque en un conjunto de muestras aleatorias Definir segmentaciones y modelos predictivos Seleccionar registros de acuerdo con un criterio que elija Comúnmente lo utiliza en expresiones de "una línea" simples, tal como aquellas descritas en Expresiones básicas en la página 186, pero también puede utilizarlo para construir scripts con rutas de ejecución complejas dependientes de datos. La sintaxis de FDL incluye: • Operadores para aritmética [consulte la sección Operadores aritméticos en la página 195]. • Operadores para comparación [consulte Operadores relacionales en la página 196] y para la combinación de expresiones lógicas [consulte la sección Operadores lógicos en la página 198]. • Dos construcciones alternativas para la evaluación condicional de instrucciones: if...then...else y case [consulte la sección Expresiones condicionales en la página 187]. • Un conjunto integral de funciones incorporadas [consulte la sección Funciones incorporadas en la página 199]. • La posibilidad de encapsular transformaciones comunes como funciones definidas por el usuario [consulte la sección Funciones definidas por el usuario en la página 192] para volver a utilizar y compartir. • Variables, para retener valores para volver a utilizar dentro de un script FDL, incluido (en algunos contextos) variables del "acumulador" global [consulte la sección Variables globales en Decision Studio en la página 191]. • Una facilidad que permite incorporar tabulaciones cruzadas a derivaciones . También consulte Acerca de Transaction Measurement Language en la página 148 Expressions (Expresiones) en la página 186 182 Portrait Miner 7.1 Capítulo Sintaxis FDL En esta sección: • • • • • • • • • • • Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184 Expressions (Expresiones) . . . . . . . . . . . . . . . . . . . . . . .186 Expresiones condicionales . . . . . . . . . . . . . . . . . . . . . . .187 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190 Funciones definidas por el usuario . . . . . . . . . . . . . . . .192 Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . .195 Operadores relacionales . . . . . . . . . . . . . . . . . . . . . . . . .196 Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198 Prioridad de operadores . . . . . . . . . . . . . . . . . . . . . . . . .199 Funciones incorporadas . . . . . . . . . . . . . . . . . . . . . . . . .199 Palabras reservadas en FDL . . . . . . . . . . . . . . . . . . . . . .206 16 Tipos de datos Tipos de datos Los siguientes tipos de datos básicos son compatibles en FDL [consulte la sección Acerca del lenguaje de derivación de campos (FDL) en la página 182]: Tipo Descripción Ejemplos (como literales de FDL) entero Un número sin una parte 78004, -100 fraccional (entre -2 147 483 647 y 2 147 483 646) real Un número con una parte 42,3, -0,56 fraccionaria, representado de modo interno como un número de "punto flotante" con precisión de 15 dígitos (entre y , o 0) fecha Una fecha/hora entre AD 1507 y #2009/01/01, AD 3015, con precisión de un #2009/01/01:16:01:39 segundo cadena Una cadena de caracteres, que representa datos textuales "hello" número pequeño Un número pequeño sin una parte fraccional (entre qsminsmallint y qsmaxsmallint) 42, -1 Nota: • Si utiliza un valor entero literal (tal como 12345678910) que es demasiado largo para un tipo de datos entero, obtendrá un flujo excesivo. Con frecuencia puede trabajar con esto utilizando en cambio un valor real: (en este caso, 12345678910.0). • El tipo smallinteger tiene aplicabilidad limitada dentro de Portrait Miner, y solo debe utilizarse cuando sea absolutamente necesario. En general, debe utilizar el tipo integer en su lugar. El valor null Además de los valores ordinarios para cada uno de los tipos de datos básicos, un campo o expresión de tipo integer, real, fecha o cadena puede adquirir el valor especial null. El valor nulo siempre representa un valor desconocido (a causa de datos faltantes, dado un flujo excesivo en un cálculo, tal como división por cero, o por algún otro motivo). Se diferencia de cero y la cadena vacía "". Las funciones y operaciones FDL preservan la incertidumbre introducida por un argumento u operando nulo, con frecuencia proporcionando el valor nulo como resultado. No obstante, hay funciones, a saber isnull y algunas funciones de agregación, que tratan especialmente el valor nulo. 184 Portrait Miner 7.1 Capítulo 16: Sintaxis FDL Ejemplos ? 1 + null es igual a null. 1 != null es igual a null. 1 < null es igual a null. null = null es igual a null. null != null es igual a null. false or null es igual a null. true and null es igual a null. true or null es igual a true. false and null es igual a false. También consulte ifnull, nvl en la página 210 Datos booleanos No hay tipo de datos booleano formal (verdadero/falso) en FDL. Sin embargo, puede tratar un campo integer (o variable) que incluye solo los valores 0 y 1, o una expresión lógica tal como Ingresos < 10000, como si fueran del tipo buleano. Las expresiones lógicas evalúan a 1 cuando son del tipo true y a 0 cuando son del tipo false. Expresiones condicionales utilizan estos valores para determinar cuáles de dos o más expresiones evaluar. Operadores lógicos también funcionan con estos valores. Un valor de 0 en un campo o variable integer se interpreta como "falso" y cualquier otro valor (no nulo) se interpreta como "true". Además, puede utilizar las palabras clave true y false como literales buleanos (que representan 1 y 0, respectivamente). Compatibilidad de tipos Los tipos de datos integer y real son compatibles con tipos, dado que puede utilizar un valor integer siempre que se requiera un valor real (pero no viceversa), por ejemplo, como un argumento para una función. Los tipos de datos date y string son únicamente compatibles con tipos entre sí mismos. Los operandos de un operador aritmético binario [consulte la sección Operadores aritméticos en la página 195] u operador relacional [consulte la sección Operadores relacionales en la página 196] deben ser compatibles con tipos. De hecho, en el caso de un operador aritmético binario, ambos operandos deben ser numéricos; el resultado es real a menos que los operandos sean enteros. De igual forma, las expresiones de resultado en una expresión if o case [consulte la sección Expresiones condicionales en la página 187] deben ser compatibles con tipos, de modo que el tipo del resultado pueda determinarse antes de la evaluación. Si se combinan expresiones de valor integer y real, el resultado es un valor real. Guía de referencia del comando de creación de datos y TML 185 Conversión de tipos Conversión de tipos Además de utilizar la conversión de tipos de datos implícita (que se da cuando el tipo de datos de una expresión se fuerza), puede convertir explícitamente entre tipos de datos con las funciones FDL tointeger, toreal, todate y tostring. Nota: Al convertir desde una cadena a un numérico, cualquier carácter no numérico posterior se ignorará. Expressions (Expresiones) Una expresión FDL es una de las siguientes: • • • • Una expresión básica [consulte la sección Expresiones básicas en la página 186] Una expresión condicional [consulte la sección Expresiones condicionales en la página 187] Una inicialización o asignación de variables [consulte la sección Variables en la página 190] Una lista de expresiones separadas por puntos y coma (una lista de expresiones), encerrada entre paréntesis Cada expresión tiene un tipo de datos asociado [consulte Tipos de datos en la página 184] y puede evaluarse. Para evaluar una lista de expresiones en un contexto determinado, evalúe cada expresión constituyente por vez, de la primera a la última; el valor de la lista de expresiones en su totalidad es el último valor calculado. Nota: • El tipo de datos se infiere automáticamente. No puede especificar uno diferente mediante el uso de una variable local del tipo requerido, o mediante el uso de una expresión que fuerce el tipo. Por ejemplo, la siguiente expresión fuerza el tipo para que sea real: if false then 0.0 else ... • Por lo general utiliza listas de expresiones en combinación con asignación de variables. Expresiones básicas Una expresión básica es una de las siguientes: • Un identificador, opcionalmente citado entre comillas simples, por ejemplo, 'CustomerID'. Debe encerrar un identificador entre comillas simples si no comienza con una letra ("A" — "Z" o "a" — "z"), incluye caracteres diferentes a letras, dígitos y guiones bajos, o coincide con una palabra reservada TML o FDL (o es diferente de uno únicamente en fuente). Un identificador no debe tener más de 128 caracteres. • Un literal numérico, por ejemplo, 30, -3,28 o 3,1e8 (el último representa • Un literal de cadena, encerrado en comillas dobles, por ejemplo, "Una cadena" • Un literal de fecha, con el prefijo "#", por ejemplo, #2004/03/16 o #2004/03/16:09:12:13 186 Portrait Miner 7.1 Capítulo 16: Sintaxis FDL • La palabra clave "null" (consulte la sección El valor null en la página 184) • Una aplicación de función, que comprende el nombre de una función (un identificador) seguido de una lista de argumentos separados por coma (expresiones) en paréntesis; por ejemplo, mean(IncomeA + IncomeB, TotalEstIncome) • Una expresión aritmética, que comprende expresiones de valor numérico conectados por operadores aritméticos [consulte la sección Operadores aritméticos en la página 195], por ejemplo, 365/52 • Una relación, que comprende expresiones de valor numérico o de cadena conectadas por operadores relacionales [consulte la sección Operadores relacionales en la página 196], por ejemplo, Age > 30 o 'State' = "New York" • Una expresión lógica, que comprende relaciones u otras expresiones de valor buleano conectadas por operadores lógicos [consulte la secciónOperadores lógicos en la página 198 ], por ejemplo, (Income > 250000) y (MaritalStatus = "Single") • Un identificador estadístico, que comprende la palabra clave TML STATISTIC seguida de un identificador, por ejemplo, STATISTIC.AverageIncome (solo en un archivo de agregaciones TML) • Una estadística de campos — solo en una derivación de Decision Studio, un archivo de derivaciones qsderive o un archivo de selecciones qsselect selections file> Nota: • Los identificadores FDL distinguen entre mayúsculas y minúsculas. Por ejemplo, las expresiones CustomerID y CUSTOMERID hacen referencia a campos diferentes, mientras que las expresiones isnull(Age) y IsNull(Age) implican funciones diferentes. • Un literal numérico se evalúa como un entero si no incluye punto decimal y no utiliza notación científica. De lo contrario, se evalúa como número real. • Un literal de cadena puede incluir caracteres diferentes a comillas dobles (") y caracteres de línea nueva. • Un literal de fecha al principio se evalúa en formato YMD [consulte Formatos de fecha en la página 55]; si esto falla, se evalúa según la configuración de su preferencia read . • Además de incorporar espacios entre elementos sintácticos, puede incluir comentarios que comiencen con una barra vertical doble ("//") y continúen hasta el final de la línea. Por ejemplo, // This is a comment. 2 + 2 // This is a comment. También consulte Palabras reservadas en FDL en la página 206 Palabras reservadas en TML en la página 149 Expresiones condicionales En FDL, hay dos formas principales en las que puede evaluar condicionalmente una expresión: la expresión if y la expresión case. También consulte Acerca del lenguaje de derivación de campos (FDL) en la página 182 Guía de referencia del comando de creación de datos y TML 187 La expresión if Expressions (Expresiones) en la página 186 La expresión if Si la condición (una expresión FDL que regresa un valor booleano [consulte la sección Datos booleanos en la página 185]) es verdadero, la expresión que sigue a then se evalúa; de lo contrario, la expresión que sigue a else se evalúa. El valor de la expresión es el valor de la expresión evaluada. Nota: • Las expresiones que siguen a then y else deben ser compatibles con tipos [consulte la sección Tipos de datos en la página 184]. • Si omite la parte "else" de una expresión if y la condición es false, el valor de la expresión if es null [consulte la sección El valor null en la página 184]. • Una condición null [consulte la sección El valor null en la página 184] se trata por la expresión if como si fuera falsa. Esta es una excepción a la regla general que indica que la incertidumbre introducida por el valor null se preserva por las expresiones FDL. Esto puede dar lugar a resultados imprevistos: por ejemplo, cuando Age es null, las siguientes expresiones (a primera vista equivalentes) generan el valor null, 0 y 1 respectivamente: Age > 40 if Age > 40 then 1 else 0 if Age <= 40 then 0 else 1 • Puede probar diferentes condiciones utilizando expresiones if agrupadas; si las expresiones en la que la expresión que sigue a then o else es en sí misma una expresión if. Si la expresión que sigue a then es una expresión if, debe encerrarla entre paréntesis para evitar ambigüedad. Alternativamente, puede utilizar la expresión case [consulte la sección La expresión case en la página 189]. • Si su condición se puede expresar como x = 0 (o ) para algún número X, también puede utilizar la función FDL incorporada cond en lugar de una expresión if. Ejemplos if Age < 40 then "Young" if Age < 40 then "Young" else "Senior" if Age > 40 then "Young" else if Age < 60 then "MiddleAged" else "Senior" if (Age >= 13 and Age < 20) then "Teenager" if isnull(Age) then mean(Age) else Age if Responder then RespondDate else StartDate if match(Postcode, "^EH") then "Y" else "N" if StartDate < #1998/09/08 then "Loyal" else "Recent" 188 Portrait Miner 7.1 Capítulo 16: Sintaxis FDL La expresión case Si la primera condición (una expresión FDL que regresa un valor booleano [consulte la sección Datos booleanos en la página 185]) es true, la expresión correspondiente (a la derecha de los dos puntos) se evalúa y regresa como el valor de la expresión case. De lo contrario, se prueba la siguiente condición; de ser true, la expresión correspondiente se evalúa y regresa como el valor de la expresión case. De lo contrario, se prueba la siguiente condición y así sucesivamente. La palabra clave default especial se interpreta como una expresión siempre true: normalmente la utilizaría como la última condición en una expresión case (dado que las condiciones subsiguientes se ignorarían). Nota: • Todas las expresiones que sucedan a la derecha de los dos puntos deben ser compatibles con tipos [consulte la sección Tipos de datos en la página 184]. • Si ninguna de las condiciones es verdadera (y no hay palabra clave default), el valor de la expresión case es null [consulte la sección El valor null en la página 184]. • Una condición null [consulte la sección El valor null en la página 184] se trata por la expresión case como si fuera falsa. Esta es una excepción a la regla general que indica que la incertidumbre introducida por el valor null se preserva por las expresiones FDL. Por ejemplo, cuando Age es null, la siguiente expresión genera el valor 3: case Age > 40 : 1; Age <= 40 : 2; default : 3; • Si utiliza una expresión case en una lista de expresiones o agrupa una expresión case como condición (dentro de una expresión if u otra expresión case), debe encerrarla entre paréntesis para evitar ambigüedad. Ejemplos case Age < 40: "Young"; default: "NotYoung"; case Response = "Exc": 7; Response = "V. Sat": 6 Response = "Sat": 5; Response = "F. Sat": 4; Guía de referencia del comando de creación de datos y TML 189 Variables Response = "Poor": 3; Response = "Bad": 2; default: 1; Variables Una variable en FDL es una ubicación de almacenamiento temporal para un valor real, entero, string o date. Puede utilizar una variable local para evaluar una subexpresión% complicada, particularmente útil si se da la misma subexpresión más de una vez%, o para evaluar una expresión que incluye una función de números aleatorios, y así evitar que su valor cambie de una evaluación a la siguiente. También puede utilizar variables global en Decision Studio [consulte la sección Variables globales en Decision Studio en la página 191] y variables state en archivos de rastreo TML [consulte la sección Variables state en Transaction Measurement Language en la página 191] para llevar información de un registro al siguiente. Para asignar un valor a una variable, utilice la siguiente sintaxis: La primera de tal asignación es una inicialización y determina la clase de la variable% — local (sin palabra clave), global o state. La palabra clave global o state solo se utiliza en conjunto con la primera asignación a una variable global o state (la inicialización). El identificador [consulte la sección Expresiones básicas en la página 186] es el nombre de la variable (que no debe coincidir con un nombre de campo en el enfoque). Para cualquier clase de variable, su tipo de datos [consulte la sección Tipos de datos en la página 184] es aquel del primer valor que se le asignó. El valor de una expresión de asignación es simplemente el valor de la expresión a la derecha del signo ":=". Por ejemplo, la siguiente lista de expresiones asigna aleatoriamente el valor 1 (al 20% de los registros), 2 (a otro 20% de los registros) o 0 (al resto de los registros): x := rndUniform(); case x < 0.2 : 1; x < 0.4 : 2; default : 0; Puede escribirse equivalentemente en su forma más compacta: case 190 Portrait Miner 7.1 Capítulo 16: Sintaxis FDL ( x := rndUniform() ) < 0.2 : 1; x < 0.4 : 2; default : 0; No obstante, la siguiente lista de expresiones genera un resultado diferente (y probablemente no deseado): case rndUniform() < 0.2 : 1; rndUniform() < 0.4 : 2; default : 0; Variables globales en Decision Studio Las variables son locales por defecto. Una variable local se destruye tan pronto como se evalúe la última expresión en la lista de expresiones (la más cercana al paréntesis de cierre) [consulte la sección Expressions (Expresiones) en la página 186] — La próxima vez que se utilice la misma variable, se volverá a inicializar. Una variable local no puede llevar información de un registro al siguiente. Por ejemplo, la siguiente lista de expresiones de derivación de campos produce un campo con 1 en cada registro: i := 0; i := i + 1 Una variable global es diferente de una variable local en que no se destruye hasta que Decision Studio o el comando de creación de datos haya calculado los valores de campos para todos los registros. La inicialización solo sucede una vez, para el primer registro en el enfoque. Por ejemplo, la siguiente lista de expresiones de derivación de campos produce un campo índice, con 1 en el primer registro, 2 en el segundo, y así sucesivamente: global i := 0; i := i + 1 Puede utilizar una variable global en una lista de expresiones de derivación de campos en una derivación de Decision Studio, en el archivo de derivaciones para qsderive o la ventana Derivar campos equivalente, en un archivo de rastreo para qstracko en un archivo de selecciones para qsselect. Variables state en Transaction Measurement Language Puede utilizar una variable state en una definición del campo TML en el archivo de rastreo qstrack. Una variable state es diferente de una variable local o global en que no se destruye hasta que qstrack haya calculado todos los valores de campos para el grupo actual (según se define por el campo clave). La inicialización sucede una sola vez para cada grupo. Por ejemplo, la siguiente definición de campo define un campo de equilibrio de ejecución, suponiendo que el campo "Deposit" incluye una cantidad depositada en una transacción (o un valor negativo para una extracción) y el campo "InitialBalance" incluye el saldo inicial para el cliente (quizás de una tabla del cliente unida anteriormente): Guía de referencia del comando de creación de datos y TML 191 Funciones definidas por el usuario create Balance := ( state bal := InitialBalance; bal := bal + Deposit ) Funciones definidas por el usuario Para definir una función FDL que pueda utilizar como una función incorporada [consulte Funciones incorporadas en la página 199], utilice la siguiente sintaxis: El identificador [consulte Expresiones básicas en la página 186] seguido de la palabra clave de la "función" es el nombre de la función. La lista de argumentos (formales) viene a continuación: Cada argumento formal (excepto uno precedido por una palabra clave "field") actúa como una variable local [consulte Variables en la página 190] que se inicia con el valor del argumento actual correspondiente cuando se aplica la función. El tipo [consulte Tipos de datos en la página 184] de cada argumento formal es el tipo especificado en la definición de la función, si la hay; si no, es el tipo del argumento utilizado al aplicar la función. Los paréntesis de cierre son necesario incluso si no existen argumentos formales. A la lista de argumentos le sigue una lista opcional de atributos de funciones [consulte Atributos de funciones en la página 194], y después el cuerpo de definición de la función. La lista de expresiones [consulte Expressions (Expresiones) en la página 186] está encabezada por asignaciones de variables locales que corresponden a los argumentos formales (excepto uno precedido por una palabra clave "field"), antes de ser evaluados para determinar el valor de retorno de la función. El tipo del valor de retorno es similar al de la última expresión. Ejemplos Defina un función para reemplazar ceros en el resultado de una expresión (de cualquier tipo) con los resultados de otra expresión: function replaceZeros(expr1, expr2) { si expr1 = 0 entonces expr2 si no expr1 192 Portrait Miner 7.1 Capítulo 16: Sintaxis FDL } Una función que toma un argumento en cadena y transforma la primer letra a mayúscula: function titleCase(texto de la cadena) { concat(toupper(left(text, 1)), right(text, strlen(text) - 1)); } Nota: • Al especificar el tipo de argumento de función, utilice "real", "integer", "string" o "date." • Puede incluir estadísticas de campo en la definición de un campo, pero cada argumento de función que se utilice en una estadística de campo debe estar precedido por una palabra clave "field". Por ejemplo, para comparar un valor con un resumen de todo el enfoque: function MyBand(campo real x) { averageX := mean(x); stdevX := stdev(x); case x < averageX - stdevX : "Lower"; x > averageX + stdevX : "Upper"; default: "Mid"; } • Puede incluir definiciones de campo al principio de la lista de expresiones que define un campo derivado. Estas funciones definidas son locales a la derivación de campo. También puede definir funciones accesibles globalmente al almacenarlas en un archivo (o archivos) en una carpeta que aparezca en la preferencia de bibliotecas de derivación . En Decision Studio, en el panel Familia de funciones en el cuadro de diálogo Funciones de derivación del Visor de Tablas, las funciones en los archivos "clase.fdl" aparecen en la clase con el mismo nombre. Por ejemplo, las funciones en un archivo llamado Conditional.fdl aparecen en la clase Conditional. Puede volver a utilizar el nombre de una clase existente, para agregarle las funciones definidas por el usuario que desee, o puede crear una clase propia utilizando un nuevo nombre. Al utilizar el comando de creación de datos qsmeasure de Portrait Miner, la ventana Agregar registros equivalente, o el comando de creación de datos qstrack, puede especificar un archivo que contenga definiciones de funciones globales adicionales. • No puede definir funciones de agregación en un contexto de medidas, es decir, en un archivo de agregaciones [consulte Uso de funciones de agregación y las cláusulas where y default en la página 154] o archivo de estadísticas [consulte Evaluación del enfoque de estadísticas: la instrucción de calcular en la página 158] para qsmeasure o la ventana equivalente Agregar registros, o en un archivo de estadísticas para qstrack. Guía de referencia del comando de creación de datos y TML 193 Atributos de funciones • Si la lista de expresiones finaliza con un carácter alfabético, debe estar separado del paréntesis de cierre por un punto y coma o un espacio en blanco. Atributos de funciones Para especificar los atributos de las funciones: Atributos útiles: sinopsis y descripción. Con estos atributos se puede hacer, de manera estándar, la función "con documentación automática". Si se instala una función en una carpeta que aparece en la preferencia de bibliotecas de derivación , la sinopsis se muestra cuando se selecciona la función en el panel Funciones del cuadro de diálogo Funciones de derivación en el Visor de tabla. Si hace clic en el botón Details, se podrá visualizar la descripción. El texto de sinopsis debería ser corto, pero el texto de descripción puede ser más largo. Por ejemplo: function nvl(testNull, replaceValue) [ sinopsis = "Reemplazar valores nulos" descripción = "la función nvl() reemplaza los valores...las cadenas nulos". ] (Observe que los atributos de descripción deben estar todos en la misma línea). element_names. En un archivo de agregación, puede utilizar una función con el atributo element_names para dividir una agregación y crear campos múltiples [consulte División de agregaciones: la cláusula by en la página 156]. El valor de este atributo es una cadena con una lista de nombres separados por comas, asociados con valores de retorno de la función 1, 2,..., en el orden que están listados. Por ejemplo, el atributo element_names de la siguiente función asocia los nombres "Low", "Medium" y "High" con los valores de retorno 1, 2 y 3 respectivamente: function band(x) [ element_names = "Low,Medium,High" ] { clamp(floor(x / 1000), 0, 2) + 1 } El atributo element_names de la siguiente función asocia los nombres "North", "South", "East" y "West" con los valores de retorno 1, 2, 3 y 4 respectivamente: 194 Portrait Miner 7.1 Capítulo 16: Sintaxis FDL function StoreGroupFunction( Store ) [ element_names = "North, South, East, West" ] { case Store = "0000" o Store = "0800" : 1; Store = "0300" o Store = "0600" o Store = "0700" : 2; Store = "0100" o Store = "0400" : 3; por defecto : 4; } Operadores aritméticos Excepto por el menos unario, que precede a su único operando, todos los operadores aritméticos FDL son operadores binarios infijos, es decir, están escritos entre sus dos operandos. Operator (Operador) Operandos Resultado + (adición) numérico La suma de los operandos - (sustracción) numérico El resultado de restar el segundo operando al primero - (menos unario) numérico El negativo del operando * (multiplicación) numérico El producto de los operandos / (división) numérico El resultado (real) al dividir el primer operando por el segundo div (división de enteros) entero El resultado (entero) al dividir el primer operando por el segundo, ignorando cualquier resto mod (módulo) entero El resto al dividir el primer operando por el segundo (el módulo), con el mismo signo que el primer operando, por ejemplo, 9 % 7 es igual a 2, pero -9 % 7 es igual a -2 Ejemplos Guía de referencia del comando de creación de datos y TML 195 Operadores relacionales 2 + 5 es igual a 7. 2 - 5 es igual a -3. - (2 + 5) es igual a -7. 2 * 5 es igual a 10. 2 / 5 es igual a 0.4. 2 div 5 es igual a 0. 2 mod 5 es igual a 2. 5 % 2 es igual a 1. Nota: • Los operadores de adición, sustracción, menos unario, y multiplicación conservan el tipo de sus operandos (que son compatibles según el tipo [consulte Compatibilidad de tipos en la página 185]). Si un operando es un entero y el otro un número real, el resultado será real. • Si el segundo operando de una división, división de enteros u operador módulo es cero, es resultado será nulo [consulte El valor null en la página 184], ya que la división por cero no está especificada. • mod requiere operandos enteros. • También puede utilizar % en lugar de mod. También consulte Operadores lógicos en la página 198 Prioridad de operadores en la página 199 Operadores relacionales en la página 196 Operadores relacionales Todos los operadores relacionales son operadores binarios no fijos, es decir, están escritos entre sus dos operandos. 196 Operator (Operador) Operandos Resultado < (menor que) entero, real, fecha, o cadena Verdadero si el primer operando es menor que el segundo; falso si el primero es mayor o igual que el segundo <= (menor que o igual que) entero, real, fecha, o cadena Verdadero si el primer operando es menor o igual que el segundo; falso si el primero es mayor que el segundo > (mayor que o igual que) entero, real, fecha, o cadena Verdadero si el primer operando es mayor que el segundo; falso Portrait Miner 7.1 Capítulo 16: Sintaxis FDL Operator (Operador) Operandos Resultado si el primero es menor o igual que segundo >= (mayor que o igual que) entero, real, fecha, o cadena Verdadero si el primer operando es mayor o igual que el segundo; falso si el primero es menor que el segundo = (igualdad) entero, real, fecha, o cadena Verdadero si los dos operandos tienen el mismo valor; falso si los operandos tienen distintos valores. Para tipos de cadenas, la comparación ignora los caracteres de espacio finales en los dos operandos. != (desigualdad) entero, real, fecha, o cadena Verdadero si los operandos tiene valores diferentes; falso si los dos operandos tiene el mismo valor. Para tipos de cadenas, la comparación ignora los caracteres de espacio finales en los dos operandos. Ejemplos 2 > 5 igual a 1 (TRUE). 5 < 5 igual a 0 (FALSE). "A" < "B" igual a 1 (TRUE). 5 <= 5 igual a 1 (TRUE). 5 > 5 igual a 0 (FALSE). 7 > 5 igual a 1 (TRUE). #2003/12/31 > #2003/11/30 igual a 1 (TRUE). 5 >= 5 igual a 1 (TRUE). "A" = "A" igual a 1 (TRUE). "A" = "a" igual a 0 (FALSE). "A" != "A" igual a 0 (FALSE). "A" != "a" igual a 1 (TRUE). Nota: • Los operandos de los operadores relacionales binarios deben ser compatibles [consulte Compatibilidad de tipos en la página 185]. Guía de referencia del comando de creación de datos y TML 197 Operadores lógicos • Al comparar fechas, "menor que" significa antes que. Al comparar cadenas, "menor que" significa antes en el alfabeto ( o más específicamente, antes en la representación de caracteres subyacentes). Lo mismo pasa con "mayor que" etc. • También puede usar == o eq en vez de = y <> en vez de !=. También consulte Operadores aritméticos en la página 195 Datos booleanos en la página 185 Operadores lógicos en la página 198 Operadores lógicos El operador lógico de negación precede a su único operando, mientras que los operadores lógicos de conjunción y disyunción son operadores binarios no fijos, es decir, están escritos entre sus dos operandos. Operator (Operador) Operandos Resultado and (conjunción lógica) boolean Verdadero si ambos operandos son verdaderos; falso si uno de los operandos es falso or (disyunción lógica) boolean Verdadero si un operando es verdadero; falso si los dos operandos son falsos not (negación lógica) boolean Verdadero si el operando es falso; falso si el operando es verdadero Ejemplos ("A" = "A") and (5 = 5) igual a 1 (TRUE). ("A" = "B") and (5 = 5) igual a 0 (FALSE). ("A" = "B") and (5 = 2) igual a 0 (FALSE). ("A" = "A") or (5 = 5) igual a 1 (TRUE). ("A" = "B") || (5 = 5) igual a 1 (TRUE). ("A" = "B") or (5 = 2) igual a 0 (FALSE). not ("A" = "A") igual a 0 (FALSE). !(("A" = "B") or (5 = 2)) igual a 1 (TRUE). Nota: • No hay ningún tipo de datos booleanos [consulte Datos booleanos en la página 185] en FDL, por eso los operandos para los operadores lógicos con enteros. No debe aplicar estos operadores a números enteros arbitrarios. 198 Portrait Miner 7.1 Capítulo 16: Sintaxis FDL • Puede usar and en vez de and, || en vez de or, y ! en vez de not. También consulte Operadores aritméticos en la página 195 Prioridad de operadores en la página 199 Operadores relacionales en la página 196 Prioridad de operadores Frente a la ausencia de paréntesis, las operaciones FDL en una expresión se llevan a cabo de acuerdo a la prioridad de operadores, del mayor al menor: Clase Operadores Menos unario - Operadores de multiplicaciones * / div mod Operadores de adición + - Operadores relacionales < <= > >= != = Negación lógica not Operadores lógicos binarios and or Si hay igualdad de prioridad, las operaciones se realizan de izquierda a derecha. Las subexpresiones entre paréntesis se evalúan siempre primero. Ejemplos -5 + 12 / 4 * 2 + 20 * 3 es igual a 61. es decir, la expresión se evalúa de la siguiente manera: -5 + ((12 / 4) * 2) + (20 * 3) Al mover los paréntesis: -(5 + 12 / (4 * 2) + 20) * 3 es igual a -79.5. También consulte Operadores aritméticos en la página 195 Operadores lógicos en la página 198 Operadores relacionales en la página 196 Funciones incorporadas FDL incluye una larga lista de funciones incorporadas. Guía de referencia del comando de creación de datos y TML 199 Funciones incorporadas Funciones condicionales Función Descripción clamp Limitar un número para que se mantenga dentro del intervalo dado. cond Producir uno o dos resultados, depende si la expresión es cero o no cero. iff Producir uno o dos resultados, depende si la expresión es cero o no cero. ifnull, nvl Reemplazar el valor nulo. isnull Comprobar si un valor es nulo o no. isselected Marcar los registros que están seleccionados. replace Reemplazar un número si no está dentro de un intervalo dado. Funciones de conversión de tipo de datos Función Objetivo todate Convertir un valor en una fecha. tointeger Convertir un valor en un entero. toreal Convertir un valor en un número real. tostring Convertir un valor en una cadena. Funciones para trabajar con fechas 200 Función Objetivo addcenturies, addcenturiescountbackwards Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en siglos. adddays Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en días. addhours Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en horas. addminutes Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en minutos. addmonths, addmonthscountbackwards Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en meses. addseconds Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en segundos. Portrait Miner 7.1 Capítulo 16: Sintaxis FDL Función Objetivo addweeks Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en semanas. addyears, addyearscountbackwards Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en años. countcenturies Calcular la cantidad de siglos entre dos fechas. countdays Calcular la cantidad de días entre dos fechas. counthours Calcular la cantidad de horas entre dos fechas. countminutes Calcular la cantidad de minutos entre dos fechas. countseconds Calcular la cantidad de segundos entre dos fechas. countweeks Calcular la cantidad de semanas entre dos fechas. countwholecenturies, countwholecenturiesbackwards Calcular la cantidad de siglos enteros entre dos fechas. countwholedays Calcular la cantidad de días enteros entre dos fechas. countwholehours Calcular la cantidad de horas enteras entre dos fechas. countwholeminutes Calcular la cantidad de minutos enteros entre dos fechas. countwholemonths, countwholemonthsbackwards Calcular la cantidad de meses enteros entre dos fechas. countwholeseconds Calcular la cantidad de segundos entre dos fechas. countwholeweeks Calcular la cantidad de semanas enteras entre dos fechas. countwholeyears, countwholeyearsbackwards Calcular la cantidad de años enteros entre dos fechas. countyears Calcular la cantidad de años entre dos fechas. day Obtener el día del mes de una fecha. dayofweek Obtener un número que represente el día de la semana de una fecha. gmt2edt Convertir una fecha en Hora Media de Greenwich (GMT) al Horario del Este (EDT). hour Obtener las horas de una fecha. minute Obtener los minutos de una fecha. month Obtener los meses de una fecha. Guía de referencia del comando de creación de datos y TML 201 Funciones incorporadas Función Objetivo now Obtener la fecha y la hora actuales. second Obtener los segundos de una fecha. today Obtener la fecha actual. weekofyear Calcular la semana del año de una fecha, tomando una fecha de inicio específica. year Obtener el año de una fecha. Funciones para trabajar con cadenas Función Objetivo concat Concatenar dos o más cadenas. endswith Probar si una cadena termina con otra. find Probar si una cadena está dentro de otra. left Devolver una subcadena de longitud específica del inicio de una cadena. mid Devolver una subcadena de longitud específica del medio de una cadena. right Devolver una subcadena de longitud específica del final de una cadena. soundex Reducir las palabras a cadenas de cuatro caracteres para un índice. startswith Probar si una cadena comienza con otra. strlen Obtener la longitud de una cadena. strmember Determinar la pertenencia a un conjunto. substitute Reemplazar una cadena por otra. substr Obtener una subcadena de una cadena. tolower Convertir una cadena a minúscula. toupper Convertir una cadena a mayúscula. trim Eliminar todos los espacios de una cadena de texto, excepto los espacios individuales entre las palabras. Expresiones regulares y sus funciones asociadas 202 Portrait Miner 7.1 Capítulo 16: Sintaxis FDL Función Objetivo match Probar una cadena para encontrar una coincidencia de expresión regular [consulte Expresiones regulares en la página 268]. replaceall Reemplazar todas las subcadenas que coinciden con una expresión regular [consulte Expresiones regulares en la página 268]. replacefirst Reemplazar la primer subcadena que coincide con una expresión regular [consulte Expresiones regulares en la página 268]. Funciones matemáticas y estadísticas Tipo Descripción abs Calcular el valor absoluto de un número. ceil Redondear un número para arriba al entero más cercano. cos Calcular el coseno de un ángulo. exp Calcular el exponencial de un número. floor Redondear un número para abajo al entero más cercano. log Calcular el logaritmo natural (base e) de un número. log10 Calcular el logaritmo base 10 de un número. logbase Calcular el logaritmo de un número, en una base específica. max (dos o más argumentos), maxnonnull Calcular el más alto de dos o más números, o la más reciente de dos o más fechas, o la última en el alfabeto de dos o más cadenas. mean (dos o más argumentos), meannonnull Calcular la media (el promedio) de dos o más números. min (dos o más argumentos), minnonnull Calcular el más bajo de dos o más números, o la más lejana de dos o más fechas, o la primera en el alfabeto de dos o más cadenas. normalize Normalizar los campos de valores para ubicarlos en el intervalo [0,1]. pow Calcular el resultado de elevar un número a la potencia de otro número. product, productnonnull Calcular el producto de dos o más números. Guía de referencia del comando de creación de datos y TML 203 Funciones incorporadas Tipo Descripción round Redondear un número al entero más cercano. sgn Calcular el signum (signo) de un número. sin Calcular el seno de un ángulo. sqrt Calcular la raíz cuadrada de un número. sum (dos o más argumentos), sumnonnull Calcular la suma de dos o más números. tan Calcular la tangente de un ángulo. Funciones de muestreo de datos Función Objetivo numericTestTrainSplit Crear una segmentación de prueba y capacitación para usar en una validación de modelo. numericTestTrainValidateSplit Crear una segmentación de prueba, capacitación y validación para usar en una validación de modelo. sampleEqualSize Crear, al azar, un índice de segmentación para los grupos de igual tamaño. sampleExactNumber Marcar, aleatoriamente, una cantidad exacta de clientes de una población especificada. sampleExactPercentage Marcar, aleatoriamente, un porcentaje exacto de clientes de una población especificada. sampleStratified Marcar, aleatoriamente, una cantidad exacta de clientes de un segmento y del resto de la población. testTrainSplit Crear una segmentación de prueba y capacitación para usar en una validación de modelo. testTrainValidateSplit Crear una segmentación de prueba, capacitación y validación para usar en una validación de modelo. Funciones de números aleatorios 204 Función Objetivo rndBinomial Generar un entero aleatorio basado en una distribución binomial. rndBool Generar un 0 ó 1 de manera aleatoria (con probabilidades iguales). rndExp Generar un número positivo aleatorio basado en una distribución exponencial. rndGamma Generar un número positivo aleatorio basado en una distribución gamma. Portrait Miner 7.1 Capítulo 16: Sintaxis FDL Función Objetivo rndNormal Generar un número positivo aleatorio basado en una distribución normal. rndPoisson Generar un número no negativo entero aleatorio basado en un distribución de Poisson discreta. rndUniform Generar un número aleatorio entre 0 y 1 basado en una distribución uniforme. Funciones de rentabilidad de la inversión Función Objetivo ActionROI Estimar (en dinero) la contribución de rentabilidad de la inversión por cliente al tomar medidas diseñadas para generar una respuesta definitiva. ActionROIAnnualized Estimar el múltiplo anual de rentabilidad de la inversión por cliente al tomar medidas diseñadas para generar una respuesta definitiva de un cliente. OfferROI Estimar la contribución de rentabilidad de la inversión por cliente al hacer una oferta diseñada para generar una respuesta definitiva. OfferROIAnnualized Estimar el múltiplo anual de rentabilidad de la inversión por cliente al hacer una oferta diseñada para generar una respuesta definitiva de un cliente. RetentionActionROI Estimar (en dinero) la contribución de rentabilidad de la inversión por cliente al tomar medidas diseñadas para prevenir desgastes. RetentionActionROIAnnualized Estimar la contribución anual de rentabilidad de la inversión por cliente al tomar medidas diseñadas para prevenir desgastes. RetentionOfferROI Estimar la rentabilidad de la inversión por cliente al hacer una oferta diseñada para prevenir desgastes. RetentionOfferROIAnnualized Estimar la rentabilidad anual de la inversión por cliente al hacer una oferta diseñada para prevenir desgastes. Funciones diversas Función Objetivo dblookup Buscar valores en una tabla de referencias (guardada como enfoque). Guía de referencia del comando de creación de datos y TML 205 Palabras reservadas en FDL Función Objetivo member Determinar la pertenencia a un conjunto. rankOrder, rankOrderApprox Identificar el orden de un valor dentro de una lista de valores. rankOrderMean, rankOrderApproxMean Identificar el orden de un valor dentro de una lista de valores. rownum Mostrar el número de cada fila en una tabla. Rangos Función Objetivo bin Obtener un índice de rangos correspondientes a un valor. También consulte Funciones definidas por el usuario en la página 192 Palabras reservadas en FDL Los siguientes tokens son palabras reservadas en FDL: accum, agg, aggregate, aggregation, y, by, case, date, default, div, double, else, eq, false, field, float, function, global, if, int, integer, long, mod, not, null, number, numeric, o, real, date, default, div, double, else, eq, false, field, float, function, global, if, int, integer, long, mod, not, null, number, numeric, o, real, short, state, string, then, true, where y while Para utilizar una palabra reservada o una palabra diferente únicamente en fuente de una palabra reservada, como un identificador [consulte Expressions (Expresiones) en la página 186] en FDL o como un nombre de campo o estadística en TML, debe encerrarla con comillas simples, por ejemplo, 'State'. Nota: Si bien los identificadores en FDL distinguen mayúsculas de minúsculas (fred y Fred son distintos), las palabras reservadas no y, por lo tanto, se reservan en cualquier combinación de fuente: por ejemplo, if, If, iF e IF son todas representaciones del mismo símbolo; este tipo de combinaciones están reservadas y no puede utilizarse como identificadores. También consulte Acerca del lenguaje de derivación de campos (FDL) en la página 182 Palabras reservadas en TML en la página 149 206 Portrait Miner 7.1 Capítulo Funciones condicionales En esta sección: • • • • • • • clamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 cond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 iff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209 ifnull, nvl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210 isnull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211 isselected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 17 clamp clamp Objetivo: Limitar un número para que se mantenga dentro del intervalo dado. Sintaxis clamp(x, min, max) Argumentos Tipo Nombre Descripción numérico x El número al que se aplicará la función clamp como x min El límite más bajo del intervalo como x max El límite más alto del intervalo Resultado Tipo Descripción como entrada x if ; min if x < min; max if x > max Ejemplos Para fijar valores dentro de un rango de 18 a 65 inclusive, reemplace los valores fuera del rango con los límites adecuados del rango: CustomerAge clamp(CustomerAge,18,65) 9 18 18 18 66 65 43 43 También consulte replace en la página 212 cond Objetivo: Producir uno o dos resultados, depende si la expresión es cero o no cero. Sintaxis cond(cond, trueExpr, falseExpr) Argumentos 208 Portrait Miner 7.1 Capítulo 17: Funciones condicionales Tipo Nombre Descripción entero cond La expresión para probar entero, real, fecha, o cadena trueExpr Rama "True" (no cero) como trueExpr falseExpr Rama "False" (cero) Resultado Tipo Descripción como trueExpr, falseExpr trueExpr Si cond 0; falseExpr Si cond = 0 Nota: A diferencia de la expresión if [consulte la sección La expresión if en la página 188] o la expresión case [consulte la sección La expresión case en la página 189], ambas ramas se evalúan por la función cond. Más significativamente, cond preserva la incertidumbre de un valor null [consulte El valor null en la página 184] en la condición. Si este comportamiento no es necesario, utilice una expresión if o case para agilizar la acción. Ejemplos Para orientarse a clientes con un gasto cero en el Trimestre 2 para una campaña de correo: SpendQtr2 cond(SpendQtr2, "Don't Mail", "Mail") 100.39 Don't Mail 0 Mail -5.72 Mail null null También consulte clamp en la página 208 iff en la página 209 ifnull, nvl en la página 210 replace en la página 212 iff Objetivo: Producir uno o dos resultados, depende si la expresión es cero o no cero. Sintaxis iff(logical_text, value_if_true, value_if_false) Argumentos Guía de referencia del comando de creación de datos y TML 209 ifnull, nvl Tipo Nombre Descripción real logical_text La expresión para probar entero, real, fecha, o cadena value_if_true Rama "True" (no cero) como value_if_true value_if_false Rama "False" (cero o null) Resultado Tipo Descripción como value_if_true, value_if_false value_if_true si logical_text 0; value_if_false si logical_text = 0 o logical_text es nulo Ejemplos iff(Score > 650, "Mail", "No Mail") También consulte cond en la página 208 ifnull, nvl Objetivo: Reemplazar el valor nulo. Puede utilizar nvl como alias para ifnull. Sintaxis ifnull(testNull, replaceValue) nvl(testNull, replaceValue) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena testNull El valor que será comprobado como testNull replaceValue El reemplazo para el valor null Resultado Tipo Descripción como entrada Una copia del valor testNull con replaceValue que reemplaza el valor null Ejemplos: Para reemplazar valores faltantes con un valor derivado de otro campo: 210 Portrait Miner 7.1 Capítulo 17: Funciones condicionales SpendQtr1 AnnualSpend ifnull(SpendQtr1, AnnualSpend/4) 45.21 178.97 45.21 null 150.56 37.64 null 784.27 196.07 59.05 274.18 59.05 También consulte cond en la página 208 isnull en la página 211 isnull Objetivo: Comprobar si un valor es nulo o no. Sintaxis isnull(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El valor que será comprobado Resultado Tipo Descripción entero 1 if x es null; 0 de lo contrario Ejemplos Para reemplazar entradas de valor null en un campo con el valor medio de ese campo: Age if isnull(Age) then mean(Age) else Age 32 32 null 44 59 59 27 27 También consulte División de agregaciones: la cláusula by en la página 156 Guía de referencia del comando de creación de datos y TML 211 isselected isselected Objetivo: Marcar los registros que están seleccionados. Sintaxis isselected() Argumentos Ninguno Resultado Tipo Descripción entero 1 si el registro está seleccionado, de lo contrario 0 Nota: El Visor de tabla admite la expansión inmediata de esta función. Ejemplos if isselected() then "LowRisk" else "HighRisk" replace Objetivo: Reemplazar un número si no está dentro de un intervalo dado. Sintaxis replace(x, min, max, y) Argumentos Tipo Nombre Descripción numérico x El número que se probará como x min El límite más bajo del intervalo como x max El límite más alto del intervalo como x y El valor de reemplazo Resultado Tipo Descripción como entrada x si ; y de lo contrario Ejemplos Para fijar valores dentro de un intervalo de 18 a 65 inclusive, reemplace los valores fuera del rango con el valor medio: 212 Portrait Miner 7.1 Capítulo 17: Funciones condicionales CustomerAge replace (CustomerAge, 18, 65, mean(CustomerAge)) 9 38 18 18 66 38 43 43 También consulte clamp en la página 208 Guía de referencia del comando de creación de datos y TML 213 Capítulo Funciones de conversión de tipo de datos En esta sección: • • • • todate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216 tointeger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217 toreal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217 tostring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218 18 todate todate Objetivo: Convertir un valor en una fecha. Sintaxis todate(x [, format] ) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El valor a convertir cadena format El formato de fecha [consulte Formatos de fecha en la página 55] a utilizar para la conversión (opcional, y solo se puede elegir si x es un tipo de cadena) Resultado Tipo Descripción fecha x, como una fecha Nota: • Si el argumento es un número entero, se asume que representará la fecha en el formato AAAAMMDD. • Si el argumento es un número real, se asume que representará la fecha en el formato AAAAMMDD.HHMMSS. • Si el argumento es de tipo de secuencia, y no se proporciona un argumento de formato de fecha, se convierte la secuencia según la configuración de su preferencia de lectura . Ejemplos (Valores de fechas en formato europeo.) todate(20040109) igual a 09/01/2004:00:00:00. todate(20040109.122853) igual a 09/01/2004:12:08:52. todate("09/01/2004") igual a 09/01/2004:00:00:00. todate("09-Jan-2004","%d-%b-%Y") igual a 09/01/2004:00:00:00. todate(#09/01/2004:12:28:53) igual a 09/01/2004:12:28:53. También consulte tointeger en la página 217 toreal en la página 217 tostring en la página 218 Conversión de tipos en la página 186 216 Portrait Miner 7.1 Capítulo 18: Funciones de conversión de tipo de datos tointeger Objetivo: Convertir un valor en un entero. Sintaxis tointeger(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El valor a convertir Resultado Tipo Descripción entero x, como un entero Nota: • SI el argumento es un número real, se ignorarán los dígitos después de la coma decimal. • Si el argumento es una fecha, el resultado tendrá el formato AAAAMMDD (se ignorará el componente de hora). • Si el argumento es una cadena, se ignorarán los caracteres numéricos finales. Ejemplos tointeger (100) igual a 100. tointeger (100.65) igual a 100. tointeger ("100.65") igual a 100. tointeger (#09/01/2004:12:28:53) igual a 20040109. También consulte todate en la página 216 toreal en la página 217 tostring en la página 218 Conversión de tipos en la página 186 toreal Objetivo: Convertir un valor en un número real. Sintaxis toreal(x) Argumentos Guía de referencia del comando de creación de datos y TML 217 tostring Tipo Nombre Descripción entero, real, fecha, o cadena x El valor a convertir Resultado Tipo Descripción real x, como un número real Nota: • Si el argumento es una fecha, el resultado tendrá el formato AAAAMMDD.HHMMSS. • Si el argumento es una cadena, se ignorarán los caracteres numéricos finales. Ejemplos toreal (100) igual a 100.0. toreal (100.65) igual a 100.65. toreal ("100.65") igual a 100.65. toreal (#09/01/2004:12:28:53) igual a 20040109.122853. También consulte todate en la página 216 tointeger en la página 217 tostring en la página 218 Conversión de tipos en la página 186 tostring Objetivo: Convertir un valor en una cadena. Sintaxis tostring(x) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El valor a convertir Resultado Tipo Descripción cadena x, como una cadena Nota: • Si el argumento es real, el resultado será en formato decimal normal (no científico). 218 Portrait Miner 7.1 Capítulo 18: Funciones de conversión de tipo de datos • Si el argumento es de tipo de fecha, el resultado tiene el formato correspondiente a la configuración de su preferencia de escritura de fecha . Ejemplos tostring ("100") igual a "100". tostring (1.0065e2) igual a "100.650000". tostring ("100.65") igual a "100.65". tostring (#09/01/2004:12:28:53 igual a "09/01/2004:12:28:53". También consulte todate en la página 216 tointeger en la página 217 toreal en la página 217 Conversión de tipos en la página 186 Guía de referencia del comando de creación de datos y TML 219 Capítulo Funciones para trabajar con fechas En esta sección: • • • • • • • • • • • • • • • • • • • • • • • • • addcenturies, addcenturiescountbackwards . . . . . . . . .223 adddays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224 addhours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224 addminutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 addmonths, addmonthscountbackwards . . . . . . . . . . . .226 addseconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228 addweeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 addyears, addyearscountbackwards . . . . . . . . . . . . . . .230 countcenturies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231 countdays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231 counthours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232 countminutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233 countseconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234 countweeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235 countwholecenturies, countwholecenturiesbackwards .236 countwholedays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237 countwholehours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238 countwholeminutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238 countwholemonths, countwholemonthsbackwards . . .239 countwholeseconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 countwholeweeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242 countwholeyears, countwholeyearsbackwards . . . . . .243 countyears . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244 day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245 dayofweek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245 19 • • • • • • • • • 222 gmt2edt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246 hour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246 minute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247 month . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 second . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249 today . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249 weekofyear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250 year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas addcenturies, addcenturiescountbackwards Objetivo: Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en siglos. Sintaxis addcenturies(date, n) addcenturiescountbackwards(date, n) Argumentos Tipo Nombre Descripción fecha date Fecha de comienzo entero n La cantidad de siglos a agregar (puede ser un número negativo) Resultado Tipo Descripción fecha La fecha n agrega siglos a la fecha date (que se entiende como |n| siglos antes de date si n < 0). La hora del resultado es la misma que la de date. Consulte addmonths, addmonthscountbackwards en la página 226 para leer una explicación de las dos variantes. Nota: El resultado de agregar n años con la función addcenturies (o addcenturiescountbackwards) es el resultado de agregar 1200n meses con la función addmonths (o addmonthscountbackwards). Ejemplos Para calcular una fecha un siglo más tarde que d, mostrando la diferencia entre las variantes addcenturies y addcenturiescountbackwards (formato de fecha AMD): d addcenturies(d,1) addcenturiescountbackwards(d,1) 1900/02/14 2000/02/14 2000/02/15 También consulte countcenturies en la página 231 countwholecenturies, countwholecenturiesbackwards en la página 236 Formatos de fecha en la página 55 Guía de referencia del comando de creación de datos y TML 223 adddays adddays Objetivo: Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en días. Sintaxis adddays(date, n) Argumentos Tipo Nombre Descripción fecha date Fecha de comienzo entero n Cantidad de días a agregar (puede ser un número negativo) Resultado Tipo Descripción fecha La fecha n agrega años a la fecha date (que se entiende como |n| días antes de date si n < 0). La hora del resultado es la misma que la de date. Ejemplos Formato de fecha europeo: adddays (#09/01/2004, 25) igual a 03/02/2004. Formato de fecha europeo: adddays (09/01/2004:11:43:46, 25) igual a 03/02/2004:11:43:46. Formato de fecha estadounidense: adddays (#01/09/2004, 25) igual a 02/03/2004. Formato de fecha estadounidense: adddays (#01/09/2004:11:43:46, 25) igual a 02/03/2004:11:43:46. Formato de fecha AMD: adddays (#2004/01/09, 25) igual a 2004/02/03. Formato de fecha AMD: adddays (#2004/01/09:11:43:46, 25) igual a 2004/02/03:11:43:46. También consulte countdays en la página 231 countwholedays en la página 237 Formatos de fecha en la página 55 addhours Objetivo: Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en horas. 224 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Sintaxis addhours(date, n) Argumentos Tipo Nombre Descripción fecha date Fecha de comienzo entero n Cantidad de horas a agregar (puede ser un número negativo) Resultado Tipo Descripción fecha La fecha n agrega horas a la fecha date (que se entiende como |n| |horas antes de date si n < 0) Nota: Todas las fechas en FDL incluyen un componente de hora. Ejemplos Formato de fecha europeo: addhours (#09/01/2004:12:28:53, 25) igual a 10/01/2004:13:28:53. Formato de fecha estadounidense: addhours (#01/09/2004:12:28:53, 25) igual a 01/10/2004:13:28:53. Formato de fecha AMD: addhours (#2004/01/09:12:28:53, 25) igual a 2004/01/10:13:28:53. También consulte counthours en la página 232 countwholehours en la página 238 Formatos de fecha en la página 55 addminutes Objetivo: Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en minutos. Sintaxis addminutes(date, n) Argumentos Tipo Nombre Descripción fecha date Fecha de comienzo entero n Cantidad de minutos a agregar (puede ser un número negativo) Guía de referencia del comando de creación de datos y TML 225 addmonths, addmonthscountbackwards Resultado Tipo Descripción fecha La fecha n agrega minutos a la fecha date (que se entiende como |n| minutos antes de date si n < 0) Nota: Todas las fechas en FDL incluyen un componente de hora. Ejemplos Formato de fecha europeo: addminutes (#09/01/2004:12:28:53, 25) igual a 09/01/2004:12:53:53. Formato de fecha estadounidense: addminutes (#01/09/2004:12:28:53, 25) igual a 01/09/2004:12:53:53. Formato de fecha AMD: addminutes (#2004/01/09:12:28:53, 25) igual a 2004/01/09:12:53:53. También consulte countminutes en la página 233 countwholeminutes en la página 238 Formatos de fecha en la página 55 addmonths, addmonthscountbackwards Objetivo: Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en meses. Sintaxis addmonths(date, n) addmonthscountbackwards(fecha, n) Argumentos Tipo Nombre Descripción fecha date Fecha de comienzo entero n La cantidad de meses a agregar (puede ser un número negativo) Resultado 226 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Tipo Descripción fecha La fecha n agrega meses a la fecha date (que se entiende como |n| meses antes de date si n < 0). Las partes de mes y año del resultado están determinadas por el desplazamiento n. El día del mes del resultado es el mismo de la fecha date (para addmonths) o la misma cantidad de días desde el último día del mes como en la fecha date (para addmonthscountbackwards). Si el día del mes resulta ser anterior al comienzo del mes o posterior a su finalización (porque el mes de resultado es un mes más corto que el mes de date), se fijará en el primer o último día del mes, según corresponda. La hora del resultado es la misma que la de date. Nota: • Si agrega n meses utilizando la función (o addmonthscountbackwards), no obtendrá el mismo resultado que al agregar un mes n veces, ya que el día del mes estará limitado por un mes corto intermedio en el último caso. • Los resultados al agregar meses con addmonths y addmonthscountbackwards puede ser diferentes si el mes de la fecha y el mes del resultado tienen una cantidad diferente de días. Ejemplos Para calcular una fecha un mes más tarde que d, mostrando la propagación de las partes de hora (formato de fecha AMD): d addmonths(d,1) 2007/08/14:00:00:00 2007/09/14:00:00:00 2007/08/14:12:34:56 2007/09/14:12:34:56 Para calcular una fecha un mes más tarde que d, mostrando la diferencia entre las variantes addcenturies y addcenturiescountbackwards (formato de fecha AMD): d addmonths(d,1) addmonthscountbackwards(d,1) 2007/08/14 2007/09/14 2007/09/13 Para calcular una fecha un mes más tarde que d, mostrando el comportamiento de fijación de addmonths al final de un mes (formato de fecha AMD): Guía de referencia del comando de creación de datos y TML 227 addseconds d addmonths(d,1) 2007/08/31 2007/09/30 Para calcular una fecha un mes más tarde que d, mostrando el comportamiento de fijación de addmonthscountbackwards al final de un mes (formato de fecha AMD): d addmonthscountbackwards(d,1) 2007/08/02 2007/09/01 2007/08/01 2007/09/01 Para calcular los seis meses desde el día de adquisición de cada cliente utilizando el campo de fecha de adquisición del cliente StartDate: addmonths(StartDate, 6) También consulte countwholemonths, countwholemonthsbackwards en la página 239 Formatos de fecha en la página 55 addseconds Objetivo: Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en segundos. Sintaxis addseconds(date, n) Argumentos Tipo Nombre Descripción fecha date Fecha de comienzo entero n Cantidad de segundos a agregar (puede ser un número negativo) Resultado Tipo Descripción fecha La fecha n agrega segundos a la fecha date (que se entiende como |n| segundos antes de date si n < 0) Nota: Todas las fechas en FDL incluyen un componente de hora. Ejemplos 228 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Formato de fecha europeo: addseconds (#09/01/2004:12:28:53, 25) igual a 09/01/2004:12:54:18. Formato de fecha estadounidense: addseconds (#01/09/2004:12:28:53, 25) igual a 01/09/2004:12:54:18. Formato de fecha AMD: addseconds (#2004/01/09:12:28:53, 25) igual a 2004/01/09:12:54:18. También consulte countseconds en la página 234 countwholeseconds en la página 241 Formatos de fecha en la página 55 addweeks Objetivo: Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en semanas. Sintaxis addweeks(date, n) Argumentos Tipo Nombre Descripción fecha date Fecha de comienzo entero n Cantidad de semanas a agregar (puede ser un número negativo) Resultado Tipo Descripción fecha La fecha n agrega semanas a la fecha date (que se entiende como |n| semanas antes de date si n < 0) La hora del resultado es la misma que la de date. Ejemplos Formato de fecha europeo: addweeks (#09/01/2004, 8) igual a 05/03/2004. Formato de fecha estadounidense: addweeks (#01/09/2004, 8) igual a 03/05/2004. Formato de fecha AMD: addweeks (#2004/01/09, 8) igual a 2004/03/05. También consulte countweeks en la página 235 Guía de referencia del comando de creación de datos y TML 229 addyears, addyearscountbackwards countwholeweeks en la página 242 Formatos de fecha en la página 55 addyears, addyearscountbackwards Objetivo: Calcular una fecha a partir de otra fecha utilizando un sistema de compensación en años. Sintaxis addyears(date, n) addyearscountbackwards(fecha, n) Argumentos Tipo Nombre Descripción fecha date Fecha de comienzo entero n Cantidad de años a agregar (puede ser un número negativo) Resultado Tipo Descripción fecha La fecha n agrega años a la fecha date (que se entiende como |n| años antes de date si n < 0). La hora del resultado es la misma que la de date. Consulte addmonths, addmonthscountbackwards en la página 226 para leer una explicación de las dos variantes. Nota: El resultado de agregar n años con la función addyears (o addyearscountbackwards) es el resultado de agregar 12n meses con la función addmonths (o addmonthscountbackwards). Ejemplos Para calcular una fecha un año más tarde que d, mostrar la diferencia entre las variantes addyears y addyearscountbackwards (formato de fecha AMD): d addyears(d,1) addyearscountbackwards(d,1) 2007/02/14 2008/02/14 2008/02/15 Para calcular el primer aniversario de la adquisición de cada cliente, utilizando el campo de fecha de adquisición del cliente StartDate: addyears(StartDate, 1) También consulte 230 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas countwholeyears, countwholeyearsbackwards en la página 243 countyears en la página 244 Formatos de fecha en la página 55 countcenturies Objetivo: Calcular la cantidad de siglos entre dos fechas. Sintaxis countcenturies(date1, date2) Argumentos Tipo Nombre Descripción fecha date1 la primera fecha fecha date2 la segunda fecha Resultado Tipo Descripción real El período entre date1 y date2 en siglos (un número negativo si date1 es posterior a date2) Nota: • Si el período no es un múltiplo exacto de 100 años (teniendo en cuenta las partes de hora en las fechas) el resultado incluye una parte fraccionaria. • El resultado de la función countcenturies es igual al resultado de la función countyears dividido por 100. Ejemplos Formato de fecha europeo: countcenturies (#09/01/2004, #09/01/2054) igual a 0.5. Formato de fecha estadounidense: countcenturies (#01/09/2004, #01/09/2054) igual a 0.5. Formato de fecha AMD: countcenturies (#2004/01/09, #2054/01/09) igual a 0.5. También consulte countwholecenturies, countwholecenturiesbackwards en la página 236 Formatos de fecha en la página 55 countdays Objetivo: Calcular la cantidad de días entre dos fechas. Guía de referencia del comando de creación de datos y TML 231 counthours Sintaxis countdays(date1, date2) Argumentos Tipo Nombre Descripción fecha date1 la primera fecha fecha date2 la segunda fecha Resultado Tipo Descripción real El período entre date1 y date2 en días (un número negativo si date1 es posterior a date2) Nota: Si la hora entre las dos fechas difiere, el resultado incluye una parte fraccionaria. Ejemplos Formato de fecha europeo: countdays (#09/01/2004, #03/02/2004) igual a 25. countdays ((#09/01/2004:10:00:00, #03/02/2004:11:00:00) igual a 25.04. countdays (#09/01/2004:11:00:00, #03/02/2004:10:00:00) igual a 24.96. Formato de fecha estadounidense: countdays (#01/09/2004, #02/03/2004) igual a 25. countdays (#01/09/2004:10:00:00, #02/03/2004:11:00:00) igual a 25.04. countdays (#01/09/2004:11:00:00, #02/03/2004:10:00:00) igual a 24.96. Formato de fecha AMD: countdays (#2004/01/09, #2004/02/03) igual a 25. countdays(#2004/01/09:10:00:00, #2004/02/03:11:00:00) igual a 25.04. countdays (#2004/01/09:11:00:00, #2004/02/03:10:00:00) igual a 24.96. También consulte adddays en la página 224 countwholedays en la página 237 Formatos de fecha en la página 55 counthours Objetivo: Calcular la cantidad de horas entre dos fechas. 232 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Sintaxis counthours(time1, time2) Argumentos Tipo Nombre Descripción fecha time1 la primera fecha/hora fecha time2 la segunda fecha/hora Resultado Tipo Descripción real El período entre time1 y time2 en horas (un número negativo si time1 es posterior a time2) Nota: Si los minutos o segundos entre las dos fechas difieren, el resultado incluye una parte fraccionaria. Ejemplos Formato de fecha europeo: counthours (#09/01/2004:12:28:53, #10/01/2004:13:28:53) igual a 25. Formato de fecha estadounidense: counthours (#01/09/2004:12:28:53, #01/10/2004:13:28:53) igual a 25. Formato de fecha AMD: counthours (#2004/01/09:12:28:53, #2004/01/10:13:28:53) igual a 25. También consulte countwholehours en la página 238 Formatos de fecha en la página 55 countminutes Objetivo: Calcular la cantidad de minutos entre dos fechas. Sintaxis countminutes(time1, time2) Argumentos Tipo Nombre Descripción fecha time1 la primera fecha/hora fecha time2 la segunda fecha/hora Resultado Guía de referencia del comando de creación de datos y TML 233 countseconds Tipo Descripción real El período entre time1 y time2 en minutos (un número negativo si time1 es posterior a time2) Nota: Si los segundos entre las dos fechas difieren, el resultado incluye una parte fraccionaria. Ejemplos Formato de fecha europeo: countminutes (#09/01/2004:12:28:53, #09/01/2004:12:53:53) igual a 25. Formato de fecha estadounidense: countminutes (#01/09/2004:12:28:53, #01/09/2004:12:53:53) igual a 25. Formato de fecha AMD: countminutes (#2004/01/09:12:28:53, #2004/01/09:12:53:53) igual a 25. También consulte countwholeminutes en la página 238 Formatos de fecha en la página 55 countseconds Objetivo Contar la cantidad de segundos entre dos fechas. Sintaxis countseconds(time1, time2) Argumentos Tipo Nombre Descripción fecha time1 la primera fecha/hora fecha time2 la segunda fecha/hora Resultado Tipo Descripción real La cantidad de segundos transcurridos entre time1 y time2 (un número negativo si time1 es posterior a time2) Nota: La única diferencia entre esta función y countwholeseconds es que el resultado de la última es un número entero. Ejemplos 234 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Formato de fecha europeo: countseconds (#09/01/2004:12:28:53, #09/01/2004:12:29:18) igual a 25. Formato de fecha estadounidense: countseconds (#01/09/2004:12:28:53, #01/09/2004:12:29:18) igual a 25. Formato de fecha AMD: countseconds (#2004/01/09:12:28:53, #2004/01/09:12:29:18) igual a 25. También consulte Formatos de fecha en la página 55 countweeks Objetivo: Calcular la cantidad de semanas entre dos fechas. Sintaxis countweeks(date1, date2) Argumentos Tipo Nombre Descripción fecha date1 la primera fecha fecha date2 la segunda fecha Resultado Tipo Descripción real El período entre date1 y date2 en semanas (un número negativo si date1 es posterior a date2) Nota: Si el período no es un múltiplo de 7 días (teniendo en cuenta la hora) el resultado incluye una parte fraccionaria. Ejemplos Formato de fecha europeo: countweeks (#09/01/2004, #05/03/2004) igual a 8. Formato de fecha estadounidense: countweeks (#01/09/2004, #03/05/2004) igual a 8. Formato de fecha AMD: countweeks (#2004/01/09, #2004/03/05) igual a 8. También consulte countwholeweeks en la página 242 Formatos de fecha en la página 55 Guía de referencia del comando de creación de datos y TML 235 countwholecenturies, countwholecenturiesbackwards countwholecenturies, countwholecenturiesbackwards Objetivo: Calcular la cantidad de siglos enteros entre dos fechas. Sintaxis countwholecenturies(date1, date2) countwholecenturiesbackwards(date1, date2) Argumentos Tipo Nombre Descripción fecha date1 la primera fecha fecha date2 la segunda fecha Resultado Tipo Descripción entero La cantidad de siglos enteros transcurridos entre date1 y date2 (un número negativo si date1 es posterior a date2). Consulte countwholemonths, countwholemonthsbackwards en la página 239 para leer una explicación de las dos variantes. Nota: • El resultado de la función countwholecenturies (o countwholecenturiesbackwards) es el resultado de la función countwholemonths (o countwholemonthsbackwards) dividido por 1200, ignorando cualquier resto. • El resultado de una comparación de dos fechas con countwholecenturies y countwholecenturiesbackwards puede variar, pero solo si las dos fechas son en febrero, una de las dos en un año divisible por 400, y la otra en un año divisible por 100 pero no por 400. Ejemplos Para contar la cantidad de siglos enteros entre d1 y d2, mostrando la diferencia entre las variantes countwholecenturies y countwholecenturiesbackwards (formato de fecha AMD): 236 d1 d2 countwholecenturies(d1,d2) countwholecenturiesbackwards(d1,d2) 1900/02/14 2000/02/13 0 0 1900/02/14 2000/02/14 1 0 1900/02/14 2000/02/15 1 1 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas También consulte addcenturies, addcenturiescountbackwards en la página 223 countcenturies en la página 231 Formatos de fecha en la página 55 countwholedays Objetivo: Calcular la cantidad de días enteros entre dos fechas. Sintaxis countwholedays(date1, date2) Argumentos Tipo Nombre Descripción fecha date1 la primera fecha fecha date2 la segunda fecha Resultado Tipo Descripción entero La cantidad de períodos de 24 horas enteros transcurridos entre date1 y date2 (un número negativo si date1 es posterior a date2). Ejemplos Formato de fecha europeo: countdays (#09/01/2004, #03/02/2004) igual a 25. countdays (#09/01/2004:10:00:00, #03/02/2004:11:00:00) igual a 25. countdays (#09/01/2004:11:00:00, #03/02/2004:10:00:00) igual a 24. Formato de fecha estadounidense: countdays (#01/09/2004, #02/03/2004) igual a 25. countdays (#01/09/2004:10:00:00, #02/03/2004:11:00:00) igual a 25. countdays (#01/09/2004:11:00:00, #02/03/2004:10:00:00) igual a 24. Formato de fecha AMD: countdays (#2004/01/09, #2004/02/03) igual a 25. countdays (#2004/01/09:10:00:00, #2004/02/03:11:00:00) igual a 25. countdays (#2004/01/09:11:00:00, #2004/02/03:10:00:00) igual a 24. Guía de referencia del comando de creación de datos y TML 237 countwholehours También consulte adddays en la página 224 countdays en la página 231 Formatos de fecha en la página 55 countwholehours Objetivo: Calcular la cantidad de horas enteras entre dos fechas. Sintaxis countwholehours(time1, time2) Argumentos Tipo Nombre Descripción fecha time1 la primera fecha/hora fecha time2 la segunda fecha/hora Resultado Tipo Descripción entero La cantidad de horas enteras transcurridas entre time1 y time2 (un número negativo si time1 es posterior a time2) Ejemplos Formato de fecha europeo: countwholehours (#09/01/2004:12:28:53, #10/01/2004:13:28:53) igual a 24. Formato de fecha estadounidense: countwholehours (#01/09/2004:12:28:53, #01/10/2004:13:28:53) igual a 24. Formato de fecha AMD: countwholehours (#2004/01/09:12:28:53, #2004/01/10:13:28:53) igual a 24. También consulte counthours en la página 232 Formatos de fecha en la página 55 countwholeminutes Objetivo: Calcular la cantidad de minutos enteros entre dos fechas. 238 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Sintaxis countwholeminutes(time1, time2) Argumentos Tipo Nombre Descripción fecha time1 la primera fecha/hora fecha time2 la segunda fecha/hora Resultado Tipo Descripción entero La cantidad de minutos enteros transcurridas entre time1 y time2 (un número negativo si time1 es posterior a time2) Ejemplos Formato de fecha europeo: countwholeminutes (#09/01/2004:12:28:53, #09/01/2004:12:53:53) igual a 24. Formato de fecha estadounidense: countwholeminutes (#01/09/2004:12:28:53, #01/09/2004:12:53:53) igual a 24. Formato de fecha AMD: countwholeminutes (#2004/01/09:12:28:53, #2004/01/09:12:53:53) igual a 24. También consulte countminutes en la página 233 Formatos de fecha en la página 55 countwholemonths, countwholemonthsbackwards Objetivo: Calcular la cantidad de meses enteros entre dos fechas. Sintaxis countwholemonths(date1, date2) countwholemonthsbackwards(date1, date2) Argumentos Tipo Nombre Descripción fecha date1 la primera fecha fecha date2 la segunda fecha Resultado Guía de referencia del comando de creación de datos y TML 239 countwholemonths, countwholemonthsbackwards Tipo Descripción entero La cantidad de meses enteros transcurridos entre date1 y date2 (un número negativo si date1 es posterior a date2) Nota: • Las partes de hora de date1 y date2 son ignoradas. • La cantidad de meses enteros entre dos fechas es la mayor cantidad de meses que se pueden agregar a la primera fecha (truncando la parte de hora y utilizando addmonths para countwholemonths, y addmonthscountbackwards en caso de countwholemonthsbackwards) de modo que si la segunda fecha es posterior a la primera, el resultado no será posterior a la segunda fecha, y si la segunda fecha es anterior a la primera, el resultado no podrá ser anterior a la segunda. • Los resultados al comparar dos fechas con countwholemonths y countwholemonthsbackwards pueden ser diferentes si las fechas tienen meses de diferente duración. • Debido al comportamiento de fijación de addmonths (y addmonthscountbackwards), el valor absoluto de los resultados al comparar dos fechas con countwholemonths (o countwholemonthsbackwards) dependerá del orden de los argumentos si las fechas tienen meses de diferente duración. Ejemplos Para contar la cantidad de meses completos entre d1 y d2, truncando las partes de hora (formato de fecha AMD): d1 d2 countwholemonths(d1,d2) 2007/08/14:00:00:00 2007/09/14:00:00:00 1 2007/08/14:12:34:56 2007/09/14:00:00:00 1 Para contar la cantidad de meses enteros entre d1 y d2, mostrando la diferencia entre las variantes countwholemonths y countwholemonthsbackwards (formato de fecha AMD): d1 d2 countwholemonths(d1,d2) countwholemonthsbackwards(d1,d2) 2007/08/14 2007/09/12 0 0 2007/08/14 2007/09/13 0 1 2007/08/14 2007/09/14 1 1 Para contar la cantidad de meses enteros entre d1 y d2, mostrando el comportamiento de fijación de countwholemonths al final de un mes (formato de fecha AMD): 240 d1 d2 countwholemonths(d1,d2) countwholemonths(d2,d1) 2007/08/31 2007/09/30 1 0 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Para contar la cantidad de meses enteros entre d1 y d2, mostrando el comportamiento de fijación de countwholemonths al principio de un mes (formato de fecha AMD): d1 d2 countwholemonthsbackwards(d1,d2) countwholemonthsbackwards(d2,d1) 2007/07/01 2007/06/01 -1 0 Para contar la cantidad de comunicaciones por correo electrónico que recibió cada cliente, cuando las comunicaciones se envían el día 5 de cada mes (y la última comunicación fue enviada el 5 de marzo de 2006), utilizando el campo de fecha de adquisición de cliente StartDate: -countwholemonths(#2006/03/05, StartDate) Para contar la cantidad de estados mensuales que recibió cada cliente, cuando los estados se envían siete días antes del cierre de cada mes (y el último fue enviado el 24 de marzo de 2006), utilizando el campo de fecha de adquisición de cliente StartDate: -countwholemonthsbackwards(#2006/03/24, StartDate) También consulte addmonths, addmonthscountbackwards en la página 226 Formatos de fecha en la página 55 countwholeseconds Objetivo: Calcular la cantidad de segundos entre dos fechas. Sintaxis countwholeseconds(time1, time2) Argumentos Tipo Nombre Descripción fecha time1 la primera fecha/hora fecha time2 la segunda fecha/hora Resultado Tipo Descripción entero La cantidad de segundos transcurridos entre time1 y time2 (un número negativo si time1 es posterior a time2) Nota: La única diferencia entre esta función y countseconds es que el resultado de la última es un número real. Ejemplos Guía de referencia del comando de creación de datos y TML 241 countwholeweeks Formato de fecha europeo: countwholeseconds (#09/01/2004:12:28:53, #09/01/2004:12:29:18) igual a 25. Formato de fecha estadounidense: countwholeseconds (#01/09/2004:12:28:53, #01/09/2004:12:29:18) igual a 25. Formato de fecha AMD: countwholeseconds (#2004/01/09:12:28:53, #2004/01/09:12:29:18) igual a 25. También consulte Formatos de fecha en la página 55 countwholeweeks Objetivo: Calcular la cantidad de semanas enteras entre dos fechas. Sintaxis countwholeweeks(date1, date2) Argumentos Tipo Nombre Descripción fecha date1 la primera fecha fecha date2 la segunda fecha Resultado Tipo Descripción entero La cantidad de semanas enteras transcurridos entre date1 y date2 (un número negativo si date1 es posterior a date2). Ejemplos Formato de fecha europeo: countwholeweeks (#09/01/2004, #09/03/2004) igual a 8. Formato de fecha estadounidense: countwholeweeks (#01/09/2004, #03/09/2004) igual a 8. Formato de fecha AMD: countwholeweeks (#2004/01/09, #2004/03/09) igual a 8. También consulte countweeks en la página 235 Formatos de fecha en la página 55 242 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas countwholeyears, countwholeyearsbackwards Objetivo: Calcular la cantidad de años enteros entre dos fechas. Sintaxis countwholeyears(date1, date2) countwholeyearsbackwards(date1, date2) Argumentos Tipo Nombre Descripción fecha date1 la primera fecha fecha date2 la segunda fecha Resultado Tipo Descripción entero La cantidad de años enteros transcurridos entre date1 y date2 (un número negativo si date1 es posterior a date2). Consulte countwholemonths, countwholemonthsbackwards en la página 239 para leer una explicación de las dos variantes. Nota: • El resultado de la función countwholeyears(o countwholeyearsbackwards) es el resultado de la función countwholemonths (o countwholemonthsbackwards) dividido por 12, ignorando cualquier resto. • El resultado de una comparación de dos fechas con countwholeyears y countwholeyearsbackwards puede variar, pero solo si las dos fechas son en febrero, una en año bisiesto y la otra no. Ejemplos Para contar la cantidad de años enteros entre d1 y d2, mostrando la diferencia entre las variantes countwholeyears y countwholeyearsbackwards (formato de fecha AMD): d1 d2 countwholeyears(d1,d2) countwholeyearsbackwards(d1,d2) 2007/02/14 2008/02/13 0 0 2007/02/14 2008/02/14 1 0 2007/02/14 2008/02/15 1 1 Para calcular la edad de cada cliente al 1 de marzo de 2007 desde un campo de fecha de nacimiento DOB (formato de fecha AMD): Guía de referencia del comando de creación de datos y TML 243 countyears countwholeyears(DOB, #2007/03/01) También consulte addyears, addyearscountbackwards en la página 230 countyears en la página 244 Formatos de fecha en la página 55 countyears Objetivo: Calcular la cantidad de años entre dos fechas. Sintaxis countyears(date1, date2) Argumentos Tipo Nombre Descripción fecha date1 la primera fecha fecha date2 la segunda fecha Resultado Tipo Descripción real El período entre date1 y date2 en años (un número negativo si date1 es posterior a date2) Nota: • Si las partes de meses, días y hora de las dos fechas difieren, el resultado incluye una parte fraccionaria, y se cuenta el año incompleto como una fracción del número de días (365 ó 366) en el año de la fecha más tardía. Ejemplos Formato de fecha europeo: countyears (#09/01/2004, #09/01/1994) igual a -10. Formato de fecha estadounidense: countyears (#01/09/2004, #01/09/1994) igual a -10. Formato de fecha AMD: countyears (#2004/01/09, #1994/01/09) igual a 10. También consulte countwholeyears, countwholeyearsbackwards en la página 243 Formatos de fecha en la página 55 244 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas day Objetivo: Obtener el día del mes de una fecha. Sintaxis day(date) Argumentos Tipo Nombre Descripción fecha date Una fecha Resultado Tipo Descripción entero El día del mes de date Ejemplos Formato de fecha europeo: day(#09/01/2004) igual a 9. Formato de fecha estadounidense: day(#01/09/2004) igual a 9. Formato de fecha AMD: day(#2004/01/09) igual a 9. También consulte Formatos de fecha en la página 55 División de agregaciones: la cláusula by en la página 156 dayofweek Objetivo: Obtener un número que represente el día de la semana de una fecha. Sintaxis dayofweek(date) Argumentos Tipo Nombre Descripción fecha date Una fecha Resultado Tipo Descripción entero El día de la semana de date (un número entre 0 y 6, dónde el 0 representa el domingo) Guía de referencia del comando de creación de datos y TML 245 gmt2edt Ejemplos Formato de fecha europeo: dayofweek (#09/01/2004) igual a 5 (es decir, viernes). Formato de fecha estadounidense: dayofweek (#01/09/2004) igual a 5 (es decir, viernes). Formato de fecha AMD: dayofweek (#2004/01/09) igual a 5 (es decir, viernes). También consulte Formatos de fecha en la página 55 División de agregaciones: la cláusula by en la página 156 gmt2edt Objetivo: Convertir una fecha en Hora Media de Greenwich (GMT) al Horario del Este (EDT). Sintaxis gmt2edt(datetimeGMT) Argumentos Tipo Nombre Descripción fecha datetimeGMT La fecha en GMT a convertir Resultado Tipo Descripción fecha La fecha en EDT, teniendo en cuenta el horario de verano Ejemplos Invierno: GMT2EDT(#09/01/2004:12:28:53) igual a 09/01/2004:07:28:53. Verano: GMT2EDT(#09/07/2004:12:28:53) igual a 09/07/2004:08:28:53. hour Objetivo: Obtener las horas de una fecha. Sintaxis hour(time) Argumentos 246 Tipo Nombre Descripción fecha time Una fecha/hora Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Resultado Tipo Descripción entero Las horas de time Ejemplos Formato de fecha europeo: hour (#09/01/2004:12:28:53) igual a 12. Formato de fecha estadounidense: hour (#01/09/2004:12:28:53) igual a 12. Formato de fecha AMD: hour (#2004/01/09:12:28:53) igual a 12. También consulte Formatos de fecha en la página 55 División de agregaciones: la cláusula by en la página 156 minute Objetivo: Obtener los minutos de una fecha. Sintaxis minute(time) Argumentos Tipo Nombre Descripción fecha time Una fecha/hora Resultado Tipo Descripción entero Los minutos de time Ejemplos Formato de fecha europeo: minute (#09/01/2004:12:28:53) igual a 28. Formato de fecha estadounidense: minute (#01/09/2004:12:28:53) igual a 28. Formato de fecha AMD: minute (#2004/01/09:12:28:53) igual a 28. También consulte Formatos de fecha en la página 55 División de agregaciones: la cláusula by en la página 156 Guía de referencia del comando de creación de datos y TML 247 month month Objetivo: Obtener los meses de una fecha. Sintaxis month(date) Argumentos Tipo Nombre Descripción fecha date Una fecha Resultado Tipo Descripción entero El mes de date Ejemplos Formato de fecha europeo: month (#09/01/2004) igual a 1. Formato de fecha estadounidense: month (#01/09/2004) igual a 1. Formato de fecha AMD: month (#2004/01/09) igual a 1. También consulte Formatos de fecha en la página 55 División de agregaciones: la cláusula by en la página 156 now Objetivo: Obtener la fecha y la hora actuales. Sintaxis now() Argumentos Ninguno Resultado Tipo Descripción fecha La fecha actual (incluyendo la hora), que se obtiene del reloj del sistema Ejemplos Formato de fecha europeo: now () igual a 09/01/2004:12:28:53. 248 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Formato de fecha estadounidense: now () igual a 01/09/2004:12:28:53. Formato de fecha AMD: now () igual a 2004/01/09:12:28:53. También consulte Formatos de fecha en la página 55 today en la página 249 second Objetivo: Obtener los segundos de una fecha. Sintaxis second(time) Argumentos Tipo Nombre Descripción fecha time Una fecha/hora Resultado Tipo Descripción entero Los segundos de time Ejemplos Formato de fecha europeo: second (#09/01/2004:12:28:53) igual a 53. Formato de fecha estadounidense: second (#01/09/2004:12:28:53) igual a 53. Formato de fecha AMD: second (#2004/01/09:12:28:53) igual a 53. También consulte Formatos de fecha en la página 55 División de agregaciones: la cláusula by en la página 156 today Objetivo: Obtener la fecha actual. Sintaxis today() Argumentos Ninguno Resultado Guía de referencia del comando de creación de datos y TML 249 weekofyear Tipo Descripción fecha La fecha actual que se obtiene del reloj del sistema, con la hora configurada en 00:00:00 Ejemplos Formato de fecha europeo: today () igual a 09/01/2004:00:00:00. Formato de fecha estadounidense: today () igual a 01/09/2004:00:00:00. Formato de fecha AMD: today () igual a 2004/01/09:00:00:00. También consulte Formatos de fecha en la página 55 now en la página 248 weekofyear Objetivo: Calcular la semana del año de una fecha, tomando una fecha de inicio específica. Sintaxis weekofyear(date, yearStart) Argumentos Tipo Nombre Descripción fecha date La fecha de la que se quiere calcular la semana del año fecha yearStart La fecha de inicio (por ejemplo, de una año financiero) Resultado Tipo Descripción entero La semana del año de date, tomando como referencia a yearStart Nota: Solo se utilizan los meses y días de la fecha de inicio. Ejemplos Formato de fecha europeo: weekofyear (#09/07/2004, #01/04/2004) igual a 14. Formato de fecha estadounidense: weekofyear (#07/09/2004, #04/01/2004) igual a 14. Formato de fecha AMD: weekofyear (#2004/07/09, #2004/04/01) igual a 14. También consulte 250 Portrait Miner 7.1 Capítulo 19: Funciones para trabajar con fechas Formatos de fecha en la página 55 División de agregaciones: la cláusula by en la página 156 year Objetivo: Obtener el año de una fecha. Sintaxis year(date) Argumentos Tipo Nombre Descripción fecha date Una fecha Resultado Tipo Descripción entero El año de date Ejemplos Formato de fecha europeo: year (#09/01/2004) igual a 2004. Formato de fecha estadounidense: year (#01/09/2004) igual a 2004. Formato de fecha AMD: year (#2004/01/09) igual a 2004. También consulte Formatos de fecha en la página 55 Guía de referencia del comando de creación de datos y TML 251 Capítulo Funciones para trabajar con cadenas En esta sección: • • • • • • • • • • • • • • • concat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254 endswith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254 find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256 mid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258 soundex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 startswith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260 strlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 strmember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262 substr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263 tolower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264 toupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265 trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265 20 concat concat Objetivo: Concatenar dos o más cadenas. Sintaxis concat( , , ...) Argumentos Tipo cadena Nombre Descripción , , ... Cadenas para ser concatenadas Resultado Tipo Descripción cadena Cadena obtenida mediante la escritura de los caracteres , seguida de los caracteres , etc. Ejemplos Ejemplo Obtiene el nombre completo de un cliente de dos campos FirstName y Surname: FirstName Surname concat(FirstName," ",Surname) John Brown John Brown David Smith David Smith Obtener el nombre completo de un cliente, pero utilizando solo su inicial: FirstName Surname concat(substr(FirstName,0,0),". ",Surname) John Brown J. Brown David Smith D. Smith endswith Objetivo: Probar si una cadena termina con otra. Sintaxis endswith(find_text, within_text) Argumentos 254 Portrait Miner 7.1 Capítulo 20: Funciones para trabajar con cadenas Tipo Nombre Descripción cadena find_text La cadena al final cadena within_text La cadena que será comprobada Resultado Tipo Descripción entero 1 (true) si find_text se encuentra al final de within_text; 0 (false) si no Nota: La función endswith se basa en la función match. Añade un carácter $ a find_text antes de tratar el resultado como una expresión regular [consulte Expresiones regulares en la página 268]. Ejemplos Para derivar un campo que marca direcciones de correo electrónico desde dominios .net: EmailAddress endswith(".net", EmailAddress) [email protected] 1 [email protected] 0 También consulte find en la página 255 startswith en la página 260 find Objetivo Probar si una cadena está dentro de otra. Sintaxis find(find_text, within_text) Argumentos Tipo Nombre Descripción cadena find_text La cadena que se debe encontrar cadena within_text La cadena que será comprobada Resultado Guía de referencia del comando de creación de datos y TML 255 left Tipo Descripción entero 1 (true) si find_text está dentro de within_text; 0 (false) si no Nota: La función encontrar se basa en la función match, y trata a find_text como una expresión regular [consulte Expresiones regulares en la página 268]. Ejemplos Ejemplo Marcar direcciones de correo electrónico que contienen el texto "portraitsoftware" en mayúscula, minúscula o una combinación: EmailAddress find("portraitsoftware", tolower(EmailAddress)) [email protected] 1 [email protected] 0 [email protected] 1 También consulte endswith en la página 254 startswith en la página 260 left Objetivo: Devolver una subcadena de longitud específica del final de una cadena. Sintaxis left(text, num_chars) Argumentos Tipo Nombre Descripción cadena text La cadena de la que se extrae entero num_chars El número de caracteres Resultado Tipo Descripción cadena La subcadena formada por caracteres num_chars al principio de text Nota: La función izquierda se basa en la función substr. 256 Portrait Miner 7.1 Capítulo 20: Funciones para trabajar con cadenas Ejemplos Para utilizar los dos primeros caracteres de un campo StateCode para identificar clientes de la costa Este u Oeste: StateCode member (left(StateCode, 2), "CA", "OR", WA") OR009 1 CA043 1 UT005 0 WA027 1 También consulte mid en la página 257 right en la página 258 trim en la página 265 mid Objetivo: Devolver una subcadena de longitud específica del medio de una cadena. Sintaxis mid(text, start_num, num_chars) Argumentos Tipo Nombre Descripción cadena text La cadena de la que se extrae cadena start_num El primer índice cadena num_chars El número de caracteres Resultado Tipo Descripción cadena La subcadena formada por los caracteres num_chars de la posición de caracteres start_num (incluido) de texto, donde las posiciones de los caracteres están numeradas a partir del 1 Nota: La función mid está basada en la función substr. Guía de referencia del comando de creación de datos y TML 257 right Ejemplos Para derivar una ubicación desde el quinto hasta el séptimo carácter de un código de almacenamiento: StoreCode mid(StoreCode, 5, 3) 0114EDI256 EDI 1863LON836 LON 9326EDI039 EDI 0387BOS041 BOS También consulte left en la página 256 right en la página 258 trim en la página 265 right Objetivo: Devolver una subcadena de longitud específica del final de una cadena. Sintaxis right(text, num_chars) Argumentos Tipo Nombre Descripción cadena text La cadena de la que se extrae entero num_chars El número de caracteres Resultado Tipo Descripción cadena La subcadena formada por caracteres num_chars en el extremo de text Nota: La función "right" está basada en la función substr. Ejemplos Para devolver el componente casa/calle de un campo de código postal del Reino Unido, es decir, los últimos tres caracteres: 258 Postcodeold_text right(Postcode, 3) NE25 0AY 0AY Portrait Miner 7.1 Capítulo 20: Funciones para trabajar con cadenas Postcodeold_text right(Postcode, 3) EH3 7RA 7RA SL4 1QX 1QX EH9 0NJ 0NJ También consulte left en la página 256 mid en la página 257 trim en la página 265 soundex Objetivo: Reducir las palabras a cadenas de cuatro caracteres para un índice. Sintaxis soundex(text) Argumentos Tipo Nombre Descripción cadena text El texto que se debe reducir Resultado Tipo Descripción cadena Una codificación de índice reducida a cuatro caracteres Ejemplos Derivar un código soundex para un apellido: Surname soundex(Surname) Brown B650 Smythe S530 Smith S530 Bruno B650 Nota: La función Soundex no está definida para caracteres que no sean ascii. Guía de referencia del comando de creación de datos y TML 259 startswith startswith Objetivo: Probar si una cadena comienza con otra. Sintaxis startswith(find_text, within_text) Argumentos Tipo Nombre Descripción cadena find_text La cadena a buscar en el inicio cadena within_text La cadena que será comprobada Resultado Tipo Descripción entero 1 si find_text se encuentra al inicio de within_text; 0 si no Nota: La función startswith se basa en la función match. Añade un carácter ^ adelante de find_text antes de tratar el resultado como una expresión regular [consulte Expresiones regulares en la página 268]. Ejemplos Para obtener el tipo de tarjeta de crédito utilizada en una transacción, como "Discover", "AmEx", "Visa" o "MasterCard", basándose en los números prefijos de las tarjetas: case startswith ("6011", CC_Number): "Discover"; startswith ("4", CC_Number): "Visa"; startswith ("5", CC_Number): "MasterCard"; startswith ("34",CC_Number) o startswith ("37", CC_Number): "AmEx"; default: null; CC_Number CC_Type 4111-1111-1111-1111 Visa 5431-1111-1111-1111 MasterCard 341-1111-1111-1111 AmEx 6011-6011-6011-6611 Discover También consulte 260 Portrait Miner 7.1 Capítulo 20: Funciones para trabajar con cadenas endswith en la página 254 find en la página 255 strlen Objetivo: Obtener la longitud de una cadena. Sintaxis strlen(string) Argumentos Tipo Nombre Descripción cadena string La cadena cuyo largo debe determinarse Resultado Tipo Descripción entero El número de caracteres en string Ejemplos Derivar un campo de cadena de exactamente cuatro caracteres, rellenando un campo de cadena más corto con ceros adelante: case strlen(AccountID) = 1: concat("000", AccountID); strlen(AccountID) = 2: concat("00", AccountID); strlen(AccountID) = 3: concat("0", AccountID); default: AccountID; AccountID Account 1 0001 22 0022 333 0333 4444 4444 strmember Objetivo: Determinar la pertenencia a un conjunto. Guía de referencia del comando de creación de datos y TML 261 substitute Sintaxis strmember(x, , , ...) Argumentos Tipo Nombre Descripción cadena x El valor que será comprobado como x , , ... Los elementos del conjunto Resultado Tipo Descripción entero 1 (true) if x está en el conjunto contrario 0 (false) ; de lo Nota: • Solo puede usar los valores literales de una cadena para la lista de los elementos del conjunto. • Los espacios en blanco al final de los valores no son ignorados. • Se prefiere la función más general miembro a esta función. También consulte División de agregaciones: la cláusula by en la página 156 substitute Objetivo: Reemplazar una cadena por otra. Sintaxis substitute(text, old_text, new_text) Argumentos Tipo Nombre Descripción cadena text La cadena que se debe buscar cadena old_text La cadena que será reemplazada cadena new_text La cadena de reemplazo Resultado Tipo Descripción cadena Una copia de la cadena text con new_text que reemplaza cada instancia no superpuesta de old_text Nota: La función "substitute" está basada en la función replaceall y trata al old_text como a una expresión regular [consulte Expresiones regulares en la página 268]. 262 Portrait Miner 7.1 Capítulo 20: Funciones para trabajar con cadenas Ejemplos Eliminar espacio en blanco de campo llamado PostalCode: PostalCode substitute(PostalCode, "[[:blank:]]", "") ND 069 ND069 IN 099 IN099 UT 0 0 5 UT005 O R 009 OR009 También consulte replacefirst en la página 274 substr Objetivo: Obtener una subcadena de una cadena. Sintaxis substr(string, start, end) Argumentos Tipo Nombre Descripción cadena string La cadena de inicio entero start El primer índice entero end El segundo índice Resultado Tipo Descripción cadena La subcadena formada por caracteres desde start hasta end (inclusive) de string, donde los caracteres están numerados comenzando con 0. Los valores de índice positivos van desde el inicio de una cadena y los valores de índice negativos van desde el final de la cadena. Ejemplos Para seleccionar los primeros dos y los últimos tres caracteres de un campo PostalCode para obtener el código del estado: Guía de referencia del comando de creación de datos y TML 263 tolower PostalCode substr(PostalCode, 0, 1) substr(PostalCode, -3, -1) MA015 MA 015 WA055 WA 055 UT005 UT 005 MN119 MN 119 Para obtener el tipo de tarjeta de crédito utilizada en una transacción, como "Discover", "AmEx", "Visa" o "MasterCard", basándose en los números prefijos de las tarjetas: case substr(CC_Number, 0, 3) = "6011": "Discover"; substr(CC_Number, 0, 0) = "4": "Visa"; substr(CC_Number, 0, 0) = "5": "MasterCard"; substr(CC_Number, 0, 1) = "34" o substr(CC_Number, 0, 1) = "37": "AmEx"; default: null; CC_Number CC_Type 4111-1111-1111-1111 Visa 5431-1111-1111-1111 MasterCard 341-1111-1111-1111 AmEx 6011-6011-6011-6611 Discover tolower Objetivo: Convertir una cadena a minúscula. Sintaxis tolower(string) Argumentos Tipo Nombre Descripción cadena string Una cadena que debe convertirse Resultado 264 Portrait Miner 7.1 Capítulo 20: Funciones para trabajar con cadenas Tipo Descripción cadena La cadena obtenida de string reemplazando todas las letras mayúsculas en string por las letras minúsculas correspondientes Ejemplos tolower("ZYXWV") es igual a "zyxwv" También consulte toupper en la página 265 toupper Objetivo: Convertir una cadena a mayúscula. Sintaxis toupper(string) Argumentos Tipo Nombre Descripción cadena string Una cadena que debe convertirse Resultado Tipo Descripción cadena La cadena obtenida de string reemplazando todas las letras minúsculas en string por las letras mayúsculas correspondientes Ejemplos toupper ("abcde") es igual a "ABCDE" También consulte tolower en la página 264 trim Objetivo: Eliminar todos los espacios de una cadena de texto, excepto los espacios individuales entre las palabras. Sintaxis trim(text) Argumentos Guía de referencia del comando de creación de datos y TML 265 trim Tipo Nombre Descripción cadena text La cadena que será comparada Resultado Tipo Descripción cadena La cadena formada por text eliminar todos los espacios excepto los espacios únicos entre palabras Nota: La función "trim" está basada en la función replaceall. Ejemplos Para derivar un campo que reemplaza múltiples caracteres de espacio en blanco por un único espacio: 266 CommentField trim(CommentField) Artículos defectuosos devueltos Artículos defectuosos devueltos Ausencia a una cita Ausencia a una cita Ingeniero que visita: Lunes Ingeniero que visita: Lunes Resuelto Resuelto Portrait Miner 7.1 Capítulo Expresiones regulares y sus funciones asociadas En esta sección: • • • • • • Expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . .268 Componentes básicos de una expresión regular . . . . .268 Operadores de las expresiones regulares . . . . . . . . . . .270 match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272 replaceall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273 replacefirst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274 21 Expresiones regulares Expresiones regulares Las expresiones regulares se utilizan para hacer coincidir patrones en las cadenas [consulte la sección Tipos de datos en la página 184]. Una expresión regular es una cadena con formato especial que representa un patrón de caracteres. Por ejemplo, la expresión regular "ar{1,2}y\?$" representa "la letra 'a,' seguida por una o dos 'r', posiblemente seguidas por 'y,' seguidas por el final de la secuencia." (Ese patrón ocurre en una secuencia como "Harry" y "amar" — pero no en "hay" o "amaras.") Una expresión regular consiste en componentes básicos [consulte la sección Componentes básicos de una expresión regular en la página 268] combinados usando operadores [consulte la sección Operadores de las expresiones regulares en la página 270]. Si una expresión regular (distinta de una subexpresión) coincide con más de una parte de una cadena, siempre coincidirá con la parte más larga y más a la izquierda. Por ejemplo, la expresión regular "a[^ad]\+" (que representa "la letra 'a', seguida por una o más letras salvo la 'a' o la 'd'") coincide con "adaptationally." La parte que coincide no es "acion," ya que hay otras partes más a la izquierda. Tampoco lo es "ap" porque, aunque no haya más partes a la izquierda, hay una parte más larga que comienza en el mismo carácter. • Para buscar una coincidencia de una expresión regular en una cadena, use la función match. • Para reemplazar una coincidencia en una cadena con otra cadena, use las funciones replacefirst o replaceall. Nota: • Las expresiones regulares son típicamente (pero no necesariamente) literales, en ese caso, deben figurar entre comillas, por ejemplo, "ar{1,2}y\?$". • Miner/FDL usa una expresión regular proporcionada por la biblioteca ICU. (Podemos vincularnos con http://userguide.icu-project.org/strings/regexp) • Las Expresiones regulares de ICU rigen conforme a la Norma técnica Unicode n.° 18, las Expresiones regulares Unicode, nivel 1 y además incluye límites de Palabras predeterminadas y Propiedades de nombre del nivel 2. Componentes básicos de una expresión regular Los componentes básicos de una expresión regular [consulte la sección Expresiones regulares en la página 268] son átomos, delimitadores y referencias inversas. Átomos Un átomo coincide con uno de un conjunto de caracteres especificados: 268 Átomo Carácter con el que coincide . (cualquier coincidencia) Cualquier carácter [...] (lista de coincidencias) Cualquiera de los caracteres especificados Portrait Miner 7.1 Capítulo 21: Expresiones regulares y sus funciones asociadas Átomo Carácter con el que coincide [^...] (lista sin coincidencias) Cualquier de los caracteres no especificados Un carácter diferente de ., ^, $, \, [, ] o *, que ocurre fuera de una lista de coincidencias o de una lista sin coincidencias El carácter ., ^, $, \, [, ], o *, que ocurre fuera de El carácter una lista de coincidencias o de una lista sin coincidencias y precedido por una barra invertida (\) Una lista de coincidencias o una lista sin coincidencias pueden incluir caracteres simples, rango de caracteres y clases de caracteres. No puedes utilizar los rangos o las clases de caracteres fuera de una lista de coincidencias o una lista sin coincidencias. Un rango de caracteres es un par de caracteres separados por un guión, equivalente a una lista de todos los caracteres en ese rango (dentro del conjunto de caracteres). Por ejemplo, "a-e" es equivalente a "abcde" en una lista de coincidencias. Una clase de caracteres es uno de los siguientes tokens definidos previamente (donde los corchetes de cierre son adicionales a los que cierran la lista de coincidencias y la lista sin coincidencias): Token Coincidencias [:alnum:] Un carácter alfanumérico, que puede ser un carácter alfabético o un dígito decimal [:alpha:] Un carácter alfabético, es decir, "A" — "Z" y "a" — "z" [:blank:] Una ficha o un carácter de espacio [:cntrl:] Un carácter de control [:digit:] Un dígito decimal, es decir, "0" — "9" [:graph:] Un carácter imprimible a parte del espacio [:lower:] Una letra en minúscula [:print:] Un carácter o espacio imprimible [:punct:] Un carácter de puntuación [:space:] Un carácter de espacio en blanco [:upper:] Un carácter en mayúscula [:xdigit:] Un dígito hexadecimal, es decir, "0" — "9," "A" — "F" y "a" — "f" Nota: • Puede incluir una mezcla de caracteres simples, rangos y clases de caracteres en una lista de coincidencias única o en una lista sin coincidencias. Por ejemplo, la lista de coincidencias Guía de referencia del comando de creación de datos y TML 269 Referencias inversas "[a-ex[:digit:]]" coincide con las letras en minúscula "a" — "e" y "x" y con los dígitos decimales ("0" — "9"). • Un guión en una lista de coincidencias o una lista sin coincidencias tiene significado propio cuando está (a) al final de un rango, (b) al principio de una lista de coincidencias o una lista sin coincidencias (en este caso también puede estar al principio de un rango), o (c) al final de una lista de coincidencias o una lista sin coincidencias. Delimitadores Los caracteres ^ y $ son delimitadores; coinciden con el principio y el final de una cadena respectivamente. Por ejemplo, para hacer coincidir "The" al principio de una cadena y en ningún otro lugar, se puede usar la expresión regular "^The." Referencias inversas Una referencia inversa es una barra invertida seguida por un solo dígito n (aparte de 0). Coincide con los mismos caracteres que la subexpresión nth encerrada en \(...\). Por ejemplo, para hacer coincidir "yoyo," "dodo," etc. — pero no "dojo" — se puede utilizar la expresión regular "\(.o\)\1." Nota: • La subexpresión con referencia inversa nth es siempre la subexpresión que comienza con una barra invertida/paréntesis de apertura (aun cuando las subexpresiones están anidadas). • La subexpresión vacía "\(\)" se puede utilizar en expresiones regulares que implican alternancia [consulte la sección El operador de alternancia en la página 271]. Por ejemplo, \(pan\(\)\|pérdida\(\)\)-y-\(agua\2\|ganancia\3\) coincide con "pan-y-agua" y "pérdida-y-ganancia," pero no con "pan-y-ganancia" o "pérdida-y-agua." Operadores de las expresiones regulares Un operador trabaja en una o dos expresiones regulares [consulte la sección Expresiones regulares en la página 268] para crear una nueva expresión regular. Los operadores, de mayor a menor prioridad, son los operadores de repetición [consulte la sección Operadores de repetición en la página 270], el operador de concatenación [consulte la sección El operador de concatenación en la página 271], y el operador de alternancia [consulte la sección El operador de alternancia en la página 271]. Si hay igualdad de prioridad, las operaciones se realizan de izquierda a derecha. Las subexpresiones encerradas en \(...\) siempre se evalúan primero. Operadores de repetición Los operadores de repetición son unarios y están escritos siguiendo un solo operando. 270 Portrait Miner 7.1 Capítulo 21: Expresiones regulares y sus funciones asociadas Operator (Operador) Descripción * (cero o más) Si una expresión regular a coincide con una o más partes adyacentes de una cadena, la expresión regular a* coincide con la concatenación de esas partes. También coincide con una subcadena vacía. \+ (uno o más) Si una expresión regular a coincide con una o más partes adyacentes de una cadena, la expresión regular a\+ coincide con la concatenación de esas partes. {m,n} (0 m n) Si una expresión regular coincide al menos con m y con no más de n partes adyacentes de una secuencia, la expresión regular a{m,n} coincide con la concatenación de esas partes. Si m=0, también coincide con una subcadena vacía. \? (opcional) Equivalente a a{0,1}, la expresión regular a\? coincide con cualquier subsecuencia vacía, o cualquier parte de una secuencia que coincide con la expresión regular a. Nota: Las "partes adyacentes" mencionadas en las definiciones de *, \+, y {...} no son secuencias idénticas necesariamente. Si necesita hacer coincidir repeticiones exactas, use las referencias inversas [consulte la sección Referencias inversas en la página 270]. El operador de concatenación El operador de concatenación no está realmente escrito, pero está implícito cuando escribe dos expresiones regulares una al lado de la otra. Si las expresiones regulares a y b coinciden con las partes adyacentes x e y de una cadena z (con x antes de y), la concatenación de a y b (a seguida por b) coincide con la parte z que contiene x e y. Nota: Cualquier secuencia de caracteres no especiales, es decir, caracteres sin significado especial en una expresión regular, funciona como una expresión regular que coincide con esa secuencia, debido al operador de concatenación implícito. En la práctica, la mayoría de las expresiones regulares están formadas por cadenas de caracteres simples, intercaladas por algunos caracteres especiales. Por ejemplo, la expresión regular "[SsTt]imple" coincide con las cadenas "Simple," "simple," "Timple," y "timple." El operador de alternancia El operador de alternancia "\|" es un operador binario, escrito entre sus operandos. Si cualquiera de las expresiones regulares a y b coinciden con una parte de una cadena, la alternancia a\|b también coincidirá con esa porción. Guía de referencia del comando de creación de datos y TML 271 match match Objetivo: probar una cadena para encontrar una coincidencia de expresión regular [consulte Expresiones regulares en la página 268]. Sintaxis match(regexp, string) Argumentos Tipo Nombre Descripción cadena regexp La expresión regular cadena string La cadena que será comprobada Resultado Tipo Descripción entero 1 (true) si regexp coincide con string; 0 (false) si es al revés Ejemplos Para marcar los clientes con los dos primeros caracteres del código postal de su casa y la sucursal de su banco iguales (función substr): Código postal de la casa Código postal de la sucursal match(substr(HomePostcode, 0, 1), substr(BranchPostcode,0,1)) NE25 0AY NE30 1QX 1 SW3 NG18 1HT 0 CF36 CF31 1HY 1 EH9 0NJ E10 8AJ 0 Para buscar en el campo Nombre de la compañía los primeros tres caracteres del campo Nombre, seguidos por cualquier texto y después el contenido del campo Apellido (ignorando las mayúsculas): 272 FirstName FamilyName CompanyName rx := concat( substr(toupper(FirstName),0,2), "[[:print:]]*", toupper(FamilyName); match(rx,toupper(CompanyName)) Patrick Smith 1234 Pat Smith Ltd 1 Patrick Smith 1234 Pat J Smith Ltd 1 Portrait Miner 7.1 Capítulo 21: Expresiones regulares y sus funciones asociadas Para hacer lo mismo, pero con solo algunas letras o dígitos y un solo espacio entre el nombre y el apellido: FirstName FamilyName CompanyName rx := concat( substr(toupper(FirstName),0,2), "[[:alnum:]]* ", toupper(FamilyName); match(rx,toupper(CompanyName)) Patrick Smith 1234 Pat Smith Ltd 1 Patrick Smith 1234 Pat J Smith Ltd 0 También consulte replaceall en la página 273 replacefirst en la página 274 División de agregaciones: la cláusula by en la página 156 replaceall Objetivo: reemplazar todas las subcadenas que coinciden con una expresión regular [consulte Expresiones regulares en la página 268]. Sintaxis replaceall(regexp, replacement, string) Argumentos Tipo Nombre Descripción cadena regexp La expresión regular cadena replacement La cadena de reemplazo cadena string La cadena que se debe buscar Resultado Tipo Descripción cadena Una copia de la cadena string con replacement reemplazando cada parte no superpuesta que coincida con regexp Nota: La primera parte con coincidencia de la cadena que se debe buscar es la parte más larga y más a la izquierda que coincide con la expresión regular. La próxima búsqueda será en el resto de la cadena que se debe buscar, y así sucesivamente. Por ejemplo, replaceall("i..", "X", "initiation") produce la cadena "XtXX" (en vez de, por ejemplo, "inXatX"). And Guía de referencia del comando de creación de datos y TML 273 replacefirst replaceall("i.*i", "X", "initiation") resulta en "Xon" (en vez de, por ejemplo, "XtXon"). Ejemplos Para detectar y quitar los espacios en blanco del campo PostalCode utilizando una coincidencia de expresión regular: PostalCode replaceall("[[:blank:]]","",PostalCode)) ND 069 ND069 IN 099 IN099 UT 0 0 5 UT005 O R 009 OR009 También consulte match en la página 272 replacefirst en la página 274 replacefirst Objetivo: reemplazar la primer subcadena que coincide con una expresión regular [consulte Expresiones regulares en la página 268]. Sintaxis replacefirst(regexp, replacement, string) Argumentos Tipo Nombre Descripción cadena regexp La expresión regular cadena replacement La cadena de reemplazo cadena string La cadena que se debe buscar Resultado Tipo Descripción cadena Una copia de la cadena string con replacement reemplazando la primera parte que coincide con regexp (si hubiera) Ejemplos 274 Portrait Miner 7.1 Capítulo 21: Expresiones regulares y sus funciones asociadas Para extraer el nombre de un cliente de un campo de dirección de correo electrónico en el formato "[email protected]", quitando toda la información desde el "@" en adelante y reemplazando "." por un espacio: Email replacefirst("@.*", "", (replacefirst ("\.", " ", Email))) [email protected] John Brown [email protected] Angela Smith También consulte match en la página 272 replaceall en la página 273 Guía de referencia del comando de creación de datos y TML 275 Capítulo Funciones matemáticas y estadísticas En esta sección: • • • • • • • • • • • • • • • • • • • • abs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278 ceil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278 cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279 exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279 floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280 log10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 logbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 max (dos o más argumentos), maxnonnull . . . . . . . . . .282 mean (dos o más argumentos), meannonnull . . . . . . . .283 min (dos o más argumentos), minnonnull . . . . . . . . . . .283 normalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284 pow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285 product, productnonnull . . . . . . . . . . . . . . . . . . . . . . . . .285 round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286 sgn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287 sin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287 sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288 sum (dos o más argumentos), sumnonnull . . . . . . . . . .288 tan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289 22 abs abs Objetivo: Calcular el valor absoluto de un número. Sintaxis abs(x) Argumentos Tipo Nombre Descripción numérico x Un número con signo Resultado Tipo Descripción como entrada , el valor absoluto, o la magnitud, de x Ejemplos abs (-10000) igual a 10000. abs (-25000) igual a 25000. Para calcular el error absoluto entre un valor previsto y un valor histórico: abs(Value PredictedValue) También consulte sgn en la página 287 ceil Objetivo: Redondear un número para arriba al entero más cercano. Sintaxis ceil(x) Argumentos Tipo Nombre Descripción numérico x El número que debe redondearse Resultado Tipo entero Descripción , el entero, de forma tal que Ejemplos 278 Portrait Miner 7.1 Capítulo 22: Funciones matemáticas y estadísticas ceil(-1.25) es igual a -2. ceil(-1.25) es igual a -1. Generar un entero aleatorio entre 1 y 10 incluido: ceil(rndUniform()*10) También consulte floor en la página 280 round en la página 286 cos Objetivo: Calcular el coseno de un ángulo. Sintaxis cos(x) Argumentos Tipo Nombre Descripción numérico x Un ángulo en radianes Resultado Tipo Descripción real cos x, el coseno de x Ejemplos cos(0) es igual a 1. exp Objetivo: Calcular el exponencial de un número. Sintaxis exp(x) Argumentos Tipo Nombre Descripción numérico x El número cuyo exponencial debe computarse Resultado Guía de referencia del comando de creación de datos y TML 279 floor Tipo Descripción real , el exponencial de x Ejemplos exp (0) es igual a 1. floor Objetivo: Redondear un número para abajo al entero más cercano. Sintaxis floor(x) Argumentos Tipo Nombre Descripción numérico x El número que debe redondearse Resultado Tipo Descripción entero , el entero, de forma tal que Ejemplos floor(-1.25) es igual a -1. floor(-1.25) es igual a -2. Generar un entero aleatorio entre 0 y 9 incluido: floor(rndUniform()*10) También consulte ceil en la página 278 round en la página 286 log Objetivo: Calcular el logaritmo natural (base e) de un número. Sintaxis log(x) Argumentos 280 Tipo Nombre Descripción numérico x Un número positivo Portrait Miner 7.1 Capítulo 22: Funciones matemáticas y estadísticas Resultado Tipo Descripción real , el logaritmo natural de x Ejemplos log(1) es igual a 0. log10 Objetivo: Calcular el logaritmo base 10 de un número. Sintaxis log10(x) Argumentos Tipo Nombre Descripción numérico x Un número positivo Resultado Tipo Descripción real , el logaritmo base-10 de x Ejemplos log10(100) es igual a 2. logbase Objetivo: Calcular el logaritmo de un número, en una base específica. Sintaxis logbase(x, base) Argumentos Tipo Nombre Descripción numérico x El número positivo cuyo logaritmo debe computarse numérico base La base que debe usarse Resultado Guía de referencia del comando de creación de datos y TML 281 max (dos o más argumentos), maxnonnull Tipo Descripción real , el logaritmo base-basede x Ejemplos logbase100,10 es igual a 2. max (dos o más argumentos), maxnonnull Objetivo: Calcular el más alto de dos o más números, o la más reciente de dos o más fechas, o la última en el alfabeto de dos o más cadenas. La variante max devuelve el valor nulo si alguno de sus argumentos es nulo, la variante maxnonnull ignora los argumentos nulos (pero aún así devuelve el valor nulo si todos sus argumentos son nulos). Sintaxis max( , , ...) maxnonnull ( , , ...) Argumentos Tipo entero, real, fecha, o cadena (todos del mismo tipo) Nombre Descripción , , ... Los valores que deben compararse Resultado Tipo Descripción como entrada El máximo de , , ... Nota: • No se debe confundir esta función max multi-argument con la función aggregation [consulte max (un argumento) en la página 171] del mismo nombre. • En el caso de las cadenas, "último en orden alfabético" significa "último en la representación del carácter subyacente". Ejemplos max (5.5, -3, 7, -8.5) es igual a 7. max(5.5, -3, nulo, -8.5) es igual a nulo. maxnonnull (5.5, -3, 7, -8.5) es igual a 7. maxnonnull (5.5, -3, nulo, -8.5) es igual a 5.5. Para determinar la mejor acción siguiente para un cliente de acuerdo con distintas medidas de ROI: maxvalue := max (ROI1, ROI2, ROI3); case maxvalue = ROI1: "Producto1"; 282 Portrait Miner 7.1 Capítulo 22: Funciones matemáticas y estadísticas maxvalue = ROI2: "Producto2"; maxvalue = ROI3: "Producto3"; mean (dos o más argumentos), meannonnull Objetivo: Calcular la media (el promedio) de dos o más números. La variante media devuelve el valor nulo si alguno de sus argumentos es nulo, la variante meannonnull ignora los argumentos nulos (pero aún así devuelve el valor nulo si todos sus argumentos son nulos). Sintaxis mean( , , ...) meannonnull ( , , ...) Argumentos Tipo numérico Nombre Descripción , , ... Los números que se deben promediar Resultado Tipo Descripción real El promedio de , , ... Nota: No se debe confundir esta función mean multi-argument con la función deaggregation [consulte mean (un argumento) en la página 172] del mismo nombre. Ejemplos mean (5.5, -3, 7, -8.5) es igual a 0.25. mean (5.5, -3, nulo, -8.5) es igual a nulo. meannonnull (5.5, -3, 7, -8.5) es igual a 0.25. meannonnull (5.5, -3, nulo, -8.5) es igual a -2. Para calcular el gasto promedio anual de cuatro campos de gasto de trimestres separados: mean(SpendQtr1, SpendQtr2, SpendQtr3, SpendQtr4) min (dos o más argumentos), minnonnull Objetivo: Calcular el más bajo de dos o más números, o la más lejana de dos o más fechas, o la primera en el alfabeto de dos o más cadenas. La variante min devuelve el valor nulo si alguno de sus argumentos Guía de referencia del comando de creación de datos y TML 283 normalize es nulo, la variante minnonnull ignora los argumentos nulos (pero aún así devuelve el valor nulo si todos sus argumentos son nulos). Sintaxis min ( , , ...) minnonnull ( , , ...) Argumentos Tipo entero, real, fecha, o cadena (todos del mismo tipo) Nombre Descripción , , ... Los valores que deben compararse Resultado Tipo Descripción como entrada El mínimo de , , ... Nota: • No se debe confundir esta función min multi-argument con la función aggregation [consulte min (un argumento) en la página 173] del mismo nombre. • En el caso de las cadenas, "primera en orden alfabético" significa "primera en la representación del carácter subyacente". Ejemplos min (5.5, -3, 7, -8.5) es igual a -8.5. min (5.5, -3, nulo, -8.5) es igual a nulo. minnonnull (5.5, -3, 7, -8.5) es igual a -8.5. minnonnull (5.5, -3, nulo, -8.5) es igual a -8.5. normalize Objetivo: normalizar los campos de valores para ubicarlos en el intervalo [0,1]. Sintaxis normalize(x) Argumentos Tipo Nombre Descripción numérico x El número que debe normalizarse Resultado 284 Portrait Miner 7.1 Capítulo 22: Funciones matemáticas y estadísticas Tipo Descripción real Valor entre 0 y 1 dado por Nota: Sólo puede utilizar esta función en una derivación de Decision Studio, en el archivo de derivaciones de qsderive o en la ventana Derivar campos equivalente en el archivo de rastreo qstrack o en un archivo de selecciones de qsselect. pow Objetivo: Calcular el resultado de elevar un número a la potencia de otro número. Sintaxis pow(x, exponent) Argumentos Tipo Nombre Descripción numérico x El número que debe elevarse a una potencia numérico exponent El exponente Resultado Tipo Descripción real , x elevado a la potencia exponent Ejemplos pow(10, 2) es igual a 100. product, productnonnull Objetivo: Calcular el producto de dos o más números. La variante product devuelve el valor nulo si alguno de sus argumentos es nulo, la variante productnonnull ignora los argumentos nulos (pero aún así devuelve el valor nulo si todos sus argumentos son nulos). Sintaxis product( , , ...) productnonnull( , , ...)> Argumentos Guía de referencia del comando de creación de datos y TML 285 round Tipo numérico Nombre Descripción , , ... Los números que deben multiplicarse Resultado Tipo Descripción como entrada El producto de , , ... Ejemplos productnonnull (5.5, -3, 7, -8.5) es igual a 981.75. product (5.5, -3, nulo, -8.5) es igual a nulo. productnonnull (5.5, -3, 7, -8.5) es igual a 981.75. productnonnull (5.5, -3, nulo, -8.5) es igual a 140.25. round Objetivo: Redondear un número al entero más cercano. Sintaxis round(x) Argumentos Tipo Nombre Descripción numérico x El número que debe redondearse Resultado Tipo Descripción entero el entero más cercano a x, o, en el caso de un empate, el mayor de los dos enteros más cercanos (en valores absolutos) Ejemplos round (1.25) es igual a 1. round (-1.25) es igual a -1. round (1.5) es igual a 2. round (-1.5) es igual a -2. También consulte 286 Portrait Miner 7.1 Capítulo 22: Funciones matemáticas y estadísticas ceil en la página 278 floor en la página 280 sgn Objetivo: Calcular el signum (signo) de un número. Sintaxis sgn(x) Argumentos Tipo Nombre Descripción numérico x Un número con signo Resultado Tipo Descripción como entrada Un número representando el signo de x: Ejemplos sgn(-25) igual a -1. sgn(-25) igual a -1. También consulte abs en la página 278 División de agregaciones: la cláusula by en la página 156 sin Objetivo: Calcular el seno de un ángulo. Sintaxis sin(x) Argumentos Tipo Nombre Descripción numérico x Un ángulo en radianes Resultado Guía de referencia del comando de creación de datos y TML 287 sqrt Tipo Descripción real sin x, el seno de x Ejemplos sin(3.14159/2) es igual a 1. sqrt Objetivo: Calcular la raíz cuadrada de un número. Sintaxis sqrt(x) Argumentos Tipo Nombre Descripción numérico x Un número no negativo Resultado Tipo Descripción real , calcula la raíz cuadrada de x Ejemplos sqrt(25) es igual a 5. sqrt(-25) es igual a nulo. sum (dos o más argumentos), sumnonnull Objetivo: Calcular la suma de dos o más números. La variante sum regresa el valor nulo si cualquiera de sus argumentos es nulo; la variante sumnonnull ignora los argumentos nulos (pero aún regresa el valor nulo si todos sus argumentos son nulos). Sintaxis sum( , , ...) sumnonnull( , , ...) Argumentos Tipo numérico Nombre , , ... Descripción Los números que se agregarán Resultado 288 Portrait Miner 7.1 Capítulo 22: Funciones matemáticas y estadísticas Tipo Descripción como entrada La suma de , , ... Nota: Tenga cuidado de no confundir esta función de suma multi-argument con la función de aggregation [consulte la sección sum (un argumento) en la página 179] del mismo nombre. Ejemplos sum (5.5, -3, 7, -8.5) es igual a 1. sum (5.5, -3, null, -8.5) es igual a null. sumnonnull(5.5, -3, 7, -8.5) es igual a 1. sumnonnull(5.5, -3, null, -8.5) es igual a -6. Para derivar el gasto total de seis campos de datos semanales: sum(SpendWk1, SpendWk2, SpendWk3, SpendWk4, SpendWk5, SpendWk6) tan Objetivo: Calcular la tangente de un ángulo. Sintaxis tan(x) Argumentos Tipo Nombre Descripción numérico x Un ángulo en radianes Resultado Tipo Descripción real tan x, la tangente de x Nota: Six se expresa como FDL devuelve nulo. for some entero n, tan x es indefinida. En ese caso, la función Ejemplos tan(3.14159/4) es igual a 1. Guía de referencia del comando de creación de datos y TML 289 Capítulo Funciones de muestreo de datos En esta sección: • • • • • • • • numericTestTrainSplit . . . . . . . . . . . . . . . . . . . . . . . . . . .292 numericTestTrainValidateSplit . . . . . . . . . . . . . . . . . . . . .292 sampleEqualSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293 sampleExactNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . .294 sampleExactPercentage . . . . . . . . . . . . . . . . . . . . . . . . . .295 sampleStratified . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 testTrainSplit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 testTrainValidateSplit . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 23 numericTestTrainSplit numericTestTrainSplit Objetivo: Crear una segmentación de prueba y capacitación para usar en una validación de modelo. Sintaxis numericTestTrainSplit(testFraction) Argumentos Tipo Nombre Descripción real testFraction La fracción de los datos que se utilizará como el conjunto de prueba Resultado Tipo Descripción entero Valores 0 para el conjunto de capacitación o 1 para el conjunto de prueba Ejemplos Para derivar un campo que asigna el valor 0 a aproximadamente 70% de los registros (elegidos en forma aleatoria) y el valor 1 a los restantes: numericTestTrainSplit(0.3) También consulte numericTestTrainValidateSplit en la página 292 sampleEqualSize en la página 293 testTrainSplit en la página 297 testTrainValidateSplit en la página 297 numericTestTrainValidateSplit Objetivo: Crear una segmentación de prueba, capacitación y validación para usar en una validación de modelo. Sintaxis numericTestTrainValidateSplit(testFraction, validateFraction) Argumentos 292 Portrait Miner 7.1 Capítulo 23: Funciones de muestreo de datos Tipo Nombre Descripción real testFraction La fracción de los datos que se utilizará como el conjunto de prueba real validateFraction La fracción de los datos que se utilizará como el conjunto representativo Resultado Tipo Descripción entero Los valores 0 para el conjunto de capacitación, 1 para el conjunto de prueba o 2 para el conjunto de validación Ejemplos Para derivar un campo que asigna el valor 0 a aproximadamente el 50% de los registros (seleccionados aleatoriamente), el valor 1 a aproximadamente el 30% de los registros (nuevamente seleccionados aleatoriamente) y el valor 2 al resto: numericTestTrainValidateSplit(0.3, 0.2) También consulte numericTestTrainSplit en la página 292 sampleEqualSize en la página 293 testTrainSplit en la página 297 testTrainValidateSplit en la página 297 sampleEqualSize Objetivo: Crear un índice de segmentación que asigne aleatoriamente registros a segmentos de tamaño aproximadamente igual. Sintaxis sampleEqualSize(NumberOfSegments) Argumentos Tipo Nombre Descripción entero NumberOfSegments El número de segmentos para crear Resultado Guía de referencia del comando de creación de datos y TML 293 sampleExactNumber Tipo Descripción entero Un número entre 1 y NumberOfSegments (inclusive) Ejemplos Para derivar un campo que enumera cinco poblaciones de igual tamaño (aproximadamente): sampleEqualSize(5) También consulte numericTestTrainSplit en la página 292 numericTestTrainValidateSplit en la página 292 testTrainSplit en la página 297 testTrainValidateSplit en la página 297 sampleExactNumber Objetivo: Crear una muestra aleatoria de un tamaño exacto, especificada como un número de registros. Sintaxis sampleExactNumber(NumberToSelect) Argumentos Tipo Nombre Descripción entero NumberToSelect El tamaño de la muestra para crear, como un número de registros Resultado Tipo Descripción entero 1 si se selecciona un registro para la muestra; de lo contrario 0 Nota: • Los registros que no están actualmente seleccionados en el enfoque reciben el valor nulo. • Sólo puede utilizar esta función en una derivación de Decision Studio, en el archivo de derivaciones para qsderive o la ventana Derivar campos equivalente, en el archivo de rastreos para qstrack o en un archivo de selecciones para qsselect. Ejemplos Para seleccionar 1250 registros para una muestra. sampleExactNumber(1250) También consulte 294 Portrait Miner 7.1 Capítulo 23: Funciones de muestreo de datos sampleExactPercentage en la página 295 sampleStratified en la página 296 sampleExactPercentage Objetivo: Crear una muestra aleatoria de un tamaño exacto, especificada como un porcentaje del tamaño de la población seleccionada actualmente. Sintaxis sampleExactPercentage(PercentageToSelect) Argumentos Tipo Nombre Descripción entero PercentageToSelect El tamaño de la muestra para crear, como un porcentaje del tamaño de la población actual Resultado Tipo Descripción entero 1 si se selecciona un registro para la muestra; de lo contrario 0 Nota: • Los registros que no están actualmente seleccionados en el enfoque reciben el valor nulo. • Si PercentageToSelect multiplicado por el tamaño de la población no es un número entero, el número seleccionado será el número entero más cercano arriba o abajo de PercentageToSelect multiplicado por el tamaño de la población y proporcionará en promedio el porcentaje especificado. • Sólo puede utilizar esta función en una derivación de Decision Studio, en el archivo de derivaciones para qsderive o la ventana Derivar campos equivalente, en el archivo de rastreos para qstrack o en un archivo de selecciones para qsselect. Ejemplos Para seleccionar el 25% de la población para la muestra: sampleExactPercentage(25) También consulte sampleExactNumber en la página 294 sampleStratified en la página 296 Guía de referencia del comando de creación de datos y TML 295 sampleStratified sampleStratified Objetivo: Crear una muestra aleatoria que incluye un número exacto de registros de un segmento específico, junto con un número exacto de registros del resto de la población seleccionada actualmente. Sintaxis sampleStratified(NumberFromSegmentToSelect, SegmentTotalSize, NumberOutsideSegmentToSelect, OutsideSegmentTotalSize, InSegmentExpression) Argumentos Tipo Nombre Descripción entero NumberFromSegmentToSelect El número de registros en la muestra que se seleccionará del segmento especificado entero SegmentTotalSize entero NumberOutsideSegmentToSelect El número de registros en la muestra que se seleccionará del resto de la población entero OutsideSegmentTotalSize El número total de registros en el resto de la población entero InSegmentExpression La expresión (booleana) que determina si un registro está o no en el segmento especificado El número total de registros en el segmento especificado Resultado Tipo Descripción entero 1 si se selecciona un registro para la muestra; de lo contrario 0 Nota: • Los registros que no están actualmente seleccionados en el enfoque reciben el valor nulo. • Sólo puede utilizar esta función en una derivación de Decision Studio, en el archivo de derivaciones para qsderive o la ventana Derivar campos equivalente, en el archivo de rastreos para qstrack o en un archivo de selecciones para qsselect. Ejemplos Para crear una muestra que comprenda 2500 registros de un total de 25.000 mujeres y 5000 registros de un total de 75.000 no mujeres: sampleStratified(2500, 25000, 5000, 75000, Gender = "F") También consulte sampleExactNumber en la página 294 sampleExactPercentage en la página 295 296 Portrait Miner 7.1 Capítulo 23: Funciones de muestreo de datos testTrainSplit Objetivo: Crear una segmentación de prueba y capacitación para usar en una validación de modelo. Sintaxis testTrainSplit(testFraction) Argumentos Tipo Nombre Descripción real testFraction La fracción de los datos que se utilizará como el conjunto de prueba Resultado Tipo Descripción cadena Valores de cadena TestSet o TrainingSet Ejemplos Para derivar un campo que asigna el valor "TrainingSet" a aproximadamente el 70% de los registros (seleccionados aleatoriamente) y el valor "TestSet" al resto: testTrainSplit(0.3) También consulte numericTestTrainSplit en la página 292 numericTestTrainValidateSplit en la página 292 sampleEqualSize en la página 293 testTrainValidateSplit en la página 297 testTrainValidateSplit Objetivo: Crear una segmentación de prueba, capacitación y validación para usar en una validación de modelo. Sintaxis testTrainValidateSplit(testFraction, validateFraction) Argumentos Guía de referencia del comando de creación de datos y TML 297 testTrainValidateSplit Tipo Nombre Descripción real testFraction La fracción de los datos que se utilizará como el conjunto de prueba real validateFraction La fracción de los datos que se utilizará como el conjunto representativo Resultado Tipo Descripción cadena Valores de cadena TestSet, TrainingSet o ValidationSet Ejemplos Para derivar un campo que asigna el valor "TrainingSet" a aproximadamente el 50% de los registros (seleccionados aleatoriamente), el valor "TestSet" a aproximadamente el 30% de los registros (nuevamente seleccionados aleatoriamente) y el valor "ValidationSet" al resto: testTrainValidateSplit(0.3, 0.2) También consulte numericTestTrainSplit en la página 292 numericTestTrainValidateSplit en la página 292 sampleEqualSize en la página 293 testTrainSplit en la página 297 298 Portrait Miner 7.1 Capítulo Funciones de números aleatorios En esta sección: • • • • • • • • Sobre las funciones de números aleatorios en FDL . . .300 rndBinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 rndBool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301 rndExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301 rndGamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302 rndNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302 rndPoisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303 rndUniform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304 24 Sobre las funciones de números aleatorios en FDL Sobre las funciones de números aleatorios en FDL Cuando se evalúa una expresión FDL que involucra a una función de número aleatorio numericTestTrainSplit, numericTestTrainValidateSplit, rndBinomial, rndBool, rndExp, rndGamma, rndNormal, rndPoisson o rndUniform sampleEqualSize, sampleExactNumber, sampleExactPercentage, sampleStratified, testTrainSplit y testTrainValidateSplit), Portrait Miner necesita una "semilla" de un entero para inicializar su secuencia de números aleatorios. Con la misma semilla, la misma expresión siempre producirá la misma secuencia de resultados. Nota: • La semilla se almacena como parte de la información del campo. • La generación de números en forma (pseudo)aleatoria está basada en la de Marsaglia, Zaman, y Tsang (1990). rndBinomial Objetivo: Generar un entero aleatorio basado en una distribución binomial. Sintaxis rndBinomial(N, p) Argumentos Tipo Nombre Descripción entero n Los números (positivos) de las pruebas numérico p La probabilidad de éxito de cada prueba (entre 0 y 1) Resultado Tipo Descripción entero Un entero aleatorio no negativo tomado de la distribución binomial, con la probabilidad dada por Nota: La expectativa y la varianza de la distribución binomial son y , respectivamente. Ejemplos rndBinomial (50, 0.05) También consulte Sobre las funciones de números aleatorios en FDL en la página 300 300 Portrait Miner 7.1 Capítulo 24: Funciones de números aleatorios rndBool Objetivo: Generar un 0 ó 1 de manera aleatoria (con probabilidades iguales). Sintaxis rndBool() Argumentos Ninguno Resultado Tipo Descripción entero 0 ó 1, con probabilidades Ejemplos Derivar un campo que asigna el valor 0 a aproximadamente 50% de los registros (elegidos al azar) y el valor 1 al resto de los registros: rndBool() También consulte Sobre las funciones de números aleatorios en FDL en la página 300 rndExp Objetivo: Generar un número positivo aleatorio basado en una distribución exponencial. Sintaxis rndExp(b) Argumentos Tipo Nombre Descripción numérico b El parámetro de la escala (positivo) Resultado Tipo Descripción real Un número positivo aleatorio tomado de una distribución exponencial, con la función de densidad de probabilidad dada por (x > 0) Nota: La expectativa y la varianza de la distribución exponencial son y respectivamente. Ejemplos rndExp (10) Guía de referencia del comando de creación de datos y TML 301 rndGamma También consulte Sobre las funciones de números aleatorios en FDL en la página 300 rndGamma Objetivo: Generar un número positivo aleatorio basado en una distribución gamma. Sintaxis rndGamma(a, b) Argumentos Tipo Nombre Descripción entero a El número (positivo) de eventos independientes numérico b La relación de eventos (positiva) Resultado Tipo Descripción real Un número positivo aleatorio tomado de una distribución gamma , con la función de densidad de probabilidad dada por Nota: La expectativa y la varianza de la distribución gamma son y respectivamente. Ejemplos rndGamma (50, 0.05) También consulte Sobre las funciones de números aleatorios en FDL en la página 300 rndNormal Objetivo: Generar un número positivo aleatorio basado en una distribución normal. Sintaxis rndNormal( , ) Argumentos Tipo numérico 302 Nombre Descripción La media de la distribución Portrait Miner 7.1 Capítulo 24: Funciones de números aleatorios Tipo Nombre Descripción numérico La desviación estándar de la distribución Resultado Tipo Descripción real Un número positivo aleatorio tomado de la distribución normal , con la función de densidad de probabilidad dada por Nota: La expectativa y la varianza de la distribución normal son y respectivamente. Ejemplos Ejemplos Derivar una distribución de Gauss con una media de cero y desviación estándar de unidad: rndNormal(0,1) También consulte Sobre las funciones de números aleatorios en FDL en la página 300 rndPoisson Objetivo: Generar un número no negativo entero aleatorio basado en un distribución de Poisson discreta. Sintaxis rndPoisson(mean) Argumentos Tipo Nombre Descripción numérico La media (positiva) de la distribución Resultado Tipo Descripción entero Un entero no negativo aleatorio tomado de una distribución discreta de Poisson, con la probabilidad calculada a partir de ( ) Nota: Tanto la expectativa como la varianza de la distribución de Poisson discreta son iguales a la media, . Guía de referencia del comando de creación de datos y TML 303 rndUniform Ejemplos rndPoisson (10) También consulte Sobre las funciones de números aleatorios en FDL en la página 300 rndUniform Objetivo: Generar un número aleatorio entre 0 y 1 basado en una distribución uniforme. Sintaxis rndUniform() Argumentos Ninguno Resultado Tipo Descripción real Un número aleatorio tomado de una distribución uniforme por encima de [0, 1) Ejemplos Ejemplos Para generar un número real aleatorio en el rango de [0,10): rndUniform() * 10 También consulte Sobre las funciones de números aleatorios en FDL en la página 300 304 Portrait Miner 7.1 Capítulo Funciones de rentabilidad de la inversión En esta sección: • • • • • • • • ActionROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306 ActionROIAnnualized . . . . . . . . . . . . . . . . . . . . . . . . . . . .307 OfferROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308 OfferROIAnnualized . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309 RetentionActionROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310 RetentionActionROIAnnualized . . . . . . . . . . . . . . . . . . . .311 RetentionOfferROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313 RetentionOfferROIAnnualized . . . . . . . . . . . . . . . . . . . . .314 25 ActionROI ActionROI Objetivo: Calcular la contribución al ROI (dinero) por cliente de emprender una acción diseñada para generar una respuesta definitiva. La acción sucede ya sea que el cliente responda o no, de modo que sólo está el costo de la acción, no del cumplimiento. Sintaxis ActionROI(ResponseProbability, ValueOfResponse, CostOfAction) Argumentos Tipo Nombre Descripción numérico ResponseProbability La probabilidad estimada de que un cliente responda a la acción mostrando algún tipo de conducta de respuesta. numérico ValueOfResponse El valor estimado de la respuesta de un cliente a una acción de marketing (si ocurre) numérico CostOfAction El costo estimado de una acción (ya sea que el cliente responda o no) Resultado Tipo Descripción numérico La contribución al ROI (dinero) de emprender una acción, calculada por cliente Nota: • La probabilidad de respuesta debe ser un "alza", es decir, la probabilidad de que el cliente muestre esa conducta cuando de otro modo no lo hubiera hecho. Si existe alguna posibilidad de que el cliente muestre la conducta deseada sin emprender la acción, esto debe modelarse utilizando el modelo de "alza" o, si eso falla, se debe restar la posibilidad de la respuesta con acción de la posibilidad sin la acción. • El valor de la respuesta debe ser un ingreso neto que ignora el costo de la acción de marketing. También consulte ActionROIAnnualized en la página 307 OfferROI en la página 308 OfferROIAnnualized en la página 309 RetentionActionROI en la página 310 RetentionActionROIAnnualized en la página 311 RetentionOfferROI en la página 313 306 Portrait Miner 7.1 Capítulo 25: Funciones de rentabilidad de la inversión RetentionOfferROIAnnualized en la página 314 ActionROIAnnualized Objetivo: Estimar el múltiplo anual de rentabilidad de la inversión por cliente al tomar medidas diseñadas para generar una respuesta definitiva de un cliente. La acción sucede ya sea que el cliente responda o no, de modo que sólo está el costo de la acción, no del cumplimiento. Sintaxis ActionROIAnnualized(ResponseProbability, ValueOfResponse, CostOfAction, DaysToROI) Argumentos Tipo Nombre Descripción numérico ResponseProbability La probabilidad estimada de que un cliente responda a la acción mostrando algún tipo de conducta de respuesta. numérico ValueOfResponse El valor estimado de la respuesta de un cliente a una acción de marketing (si ocurre) numérico CostOfAction El costo estimado de una acción (ya sea que el cliente responda o no) numérico DaysToROI El número de días que se requerirá para lograr un ROI determinado. Resultado Tipo Descripción numérico El ROI múltiple anualizado y calculado por cliente de emprender una acción. Nota: • La probabilidad de respuesta debe ser un "alza", es decir, la probabilidad de que el cliente muestre esa conducta cuando de otro modo no lo hubiera hecho. Si existe alguna posibilidad de que el cliente muestre la conducta deseada sin emprender la acción, esto debe modelarse utilizando el modelo de "alza" o, si eso falla, se debe restar la posibilidad de la respuesta con acción de la posibilidad sin la acción. • El valor de la respuesta debe ser un ingreso neto que ignora el costo de la acción de marketing. También consulte ActionROI en la página 306 Guía de referencia del comando de creación de datos y TML 307 OfferROI OfferROI en la página 308 OfferROIAnnualized en la página 309 RetentionActionROI en la página 310 RetentionActionROIAnnualized en la página 311 RetentionOfferROI en la página 313 RetentionOfferROIAnnualized en la página 314 OfferROI Objetivo: Estimar la contribución de rentabilidad de la inversión por cliente al hacer una oferta diseñada para generar una respuesta definitiva. Sintaxis OfferROI(ResponseProbability, ValueOfResponse, CostOfOffer, CostOfFulfilment) Argumentos Tipo Nombre Descripción numérico ResponseProbability La probabilidad estimada de que un cliente responda a la acción mostrando algún tipo de conducta de respuesta. numérico ValueOfResponse El valor estimado de la respuesta de un cliente a una acción de marketing (si ocurre) numérico CostOfOffer El costo estimado de una acción (ya sea que el cliente responda o no) numérico CostOfFulfilment El costo estimado del cumplimiento de una respuesta positiva (cero si no hay costo de cumplimiento (adicional)) Resultado Tipo Descripción numérico El ROI estimado por cliente de realizar una oferta Nota: • La probabilidad de respuesta debe ser un "alza", es decir, la probabilidad de que el cliente muestre esa conducta cuando de otro modo no lo hubiera hecho. Si existe alguna posibilidad de que el cliente muestre la conducta deseada sin emprender la acción, esto debe modelarse 308 Portrait Miner 7.1 Capítulo 25: Funciones de rentabilidad de la inversión utilizando el modelo de "alza" o, si eso falla, se debe restar la posibilidad de la respuesta con acción de la posibilidad sin la acción. • El valor de la respuesta debe ser un ingreso neto que ignora el costo de la acción de marketing y el costo del cumplimiento de la respuesta del cliente. También consulte ActionROI en la página 306 ActionROIAnnualized en la página 307 OfferROIAnnualized en la página 309 RetentionActionROI en la página 310 RetentionActionROIAnnualized en la página 311 RetentionOfferROI en la página 313 RetentionOfferROIAnnualized en la página 314 OfferROIAnnualized Objetivo: Estimar el múltiplo anual de rentabilidad de la inversión por cliente al hacer una oferta diseñada para generar una respuesta definitiva de un cliente. Sintaxis OfferROIAnnualized(ResponseProbability, ValueOfResponse, CostOfOffer, CostOfFulfilment, DaysToROI) Argumentos Tipo Nombre Descripción numérico ResponseProbability La probabilidad estimada de que un cliente responda a la acción mostrando algún tipo de conducta de respuesta. numérico ValueOfResponse El valor estimado de la respuesta de un cliente a una acción de marketing (si ocurre) numérico CostOfOffer El costo estimado de una acción (ya sea que el cliente responda o no) numérico CostOfFulfilment El costo estimado del cumplimiento de una respuesta positiva (cero si no hay costo de cumplimiento (adicional)) Guía de referencia del comando de creación de datos y TML 309 RetentionActionROI Tipo Nombre Descripción numérico DaysToROI El número de días que se requerirá para lograr un ROI determinado. Resultado Tipo Descripción numérico El ROI múltiple anualizado estimado por cliente de realizar una oferta Nota: • La probabilidad de respuesta debe ser un "alza", es decir, la probabilidad de que el cliente muestre esa conducta cuando de otro modo no lo hubiera hecho. Si existe alguna posibilidad de que el cliente muestre la conducta deseada sin emprender la acción, esto debe modelarse utilizando el modelo de "alza" o, si eso falla, se debe restar la posibilidad de la respuesta con acción de la posibilidad sin la acción. • El valor de la respuesta debe ser un ingreso neto que ignora el costo de la acción de marketing y el costo del cumplimiento de la respuesta del cliente. También consulte ActionROI en la página 306 ActionROIAnnualized en la página 307 OfferROI en la página 308 RetentionActionROI en la página 310 RetentionActionROIAnnualized en la página 311 RetentionOfferROI en la página 313 RetentionOfferROIAnnualized en la página 314 RetentionActionROI Objetivo: Estimar (en dinero) la contribución de rentabilidad de la inversión por cliente al tomar medidas diseñadas para prevenir desgastes. Se asume que la acción tiene un costo fijo, sin importar si se conserva al cliente o no, y si el cliente "acepta" o no la oferta. Sintaxis RetentionActionROI(SaveProbability, NetRevenueAtRisk, CostOfAction) Argumentos 310 Tipo Nombre Descripción numérico SaveProbability La probabilidad estimada de que el cliente se "conservará" (para Portrait Miner 7.1 Capítulo 25: Funciones de rentabilidad de la inversión Tipo Nombre Descripción el período en consideración) como resultado de la acción emprendida numérico NetRevenueAtRisk El ingreso neto estimado que se perderá si el cliente no se conserva durante el período en consideración numérico CostOfAction El costo estimado de una acción (ya sea que el cliente responda o no) Resultado Tipo Descripción numérico Calcular la contribución al ROI (dinero) por cliente de una acción diseñada para evitar el desgaste. Nota: • Decir que se ha "conservado" un cliente significa que "se evitó la pérdida de un cliente cuando de lo contrario se hubiera perdido". Este valor es el negativo del alza en la tasa de desgaste producida por el modelo de alza. Alternativamente, puede calcularse como P(desgaste|sin acción) - P(desgaste|con acción). • El ingreso neto en riesgo debe ser un ingreso neto que ignora el costo de la acción diseñada para evitar el desgaste. También consulte ActionROI en la página 306 ActionROIAnnualized en la página 307 OfferROI en la página 308 OfferROIAnnualized en la página 309 RetentionActionROIAnnualized en la página 311 RetentionOfferROI en la página 313 RetentionOfferROIAnnualized en la página 314 RetentionActionROIAnnualized Objetivo: Estimar la contribución anual de rentabilidad de la inversión por cliente al tomar medidas diseñadas para prevenir desgastes. Se asume que la acción tiene un costo fijo, sin importar si se conserva al cliente o no, y si el cliente "acepta" o no la oferta. Guía de referencia del comando de creación de datos y TML 311 RetentionActionROIAnnualized Sintaxis RetentionActionROIAnnualized(SaveProbability, NetRevenueAtRisk, CostOfAction, DaysToROI) Argumentos Tipo Nombre Descripción numérico SaveProbability La probabilidad estimada de que el cliente se "conservará" (para el período en consideración) como resultado de la acción emprendida numérico NetRevenueAtRisk El ingreso neto estimado que se perderá si el cliente no se conserva durante el período en consideración numérico CostOfAction El costo estimado de una acción (ya sea que el cliente responda o no) numérico DaysToROI El número de días que se requerirá para lograr un ROI determinado. Resultado Tipo Descripción numérico La contribución estimada al ROI anualizado por cliente de una acción diseñada para evitar el desgaste. Nota: • Decir que se ha "conservado" un cliente significa que "se evitó la pérdida de un cliente cuando de lo contrario se hubiera perdido". Este valor es el negativo del alza en la tasa de desgaste producida por el modelo de alza. Alternativamente, puede calcularse como P(desgaste|sin acción) - P(desgaste|con acción). • El ingreso neto en riesgo debe ser un ingreso neto que ignora el costo de la acción diseñada para evitar el desgaste. También consulte ActionROI en la página 306 ActionROIAnnualized en la página 307 OfferROI en la página 308 OfferROIAnnualized en la página 309 RetentionActionROI en la página 310 RetentionOfferROI en la página 313 312 Portrait Miner 7.1 Capítulo 25: Funciones de rentabilidad de la inversión RetentionOfferROIAnnualized en la página 314 RetentionOfferROI Objetivo: Estimar la rentabilidad de la inversión por cliente al hacer una oferta diseñada para prevenir desgastes. Una oferta, a diferencia de una acción, tiene un costo diferente si es aceptada por el cliente que si no es aceptada. Sintaxis RetentionOfferROI(SaveProbability, ResponseProbability, NetRevenueAtRisk, CostOfOffer, CostOfFulfilment) Argumentos Tipo Nombre Descripción numérico SaveProbability La probabilidad estimada de que el cliente se "conservará" (para el período en consideración) como resultado de la acción emprendida numérico ResponseProbability La probabilidad estimada de que el cliente responda a la oferta numérico NetRevenueAtRisk El ingreso neto estimado que se perderá si el cliente no se conserva durante el período en consideración numérico CostOfOffer El costo estimado de una oferta (ya sea que el cliente responda o no) numérico CostOfFulfilment El costo estimado de obtener una respuesta positiva a la oferta. Resultado Tipo Descripción numérico El ROI estimado por cliente de una oferta diseñada para evitar el desgaste Nota: • Decir que se ha "conservado" un cliente significa que "se evitó la pérdida de un cliente cuando de lo contrario se hubiera perdido". Este valor es menos el alza en la tasa de desgaste producido por el modelo de alza. Alternativamente, puede calcularse como P(desgaste|sin acción) - P(desgaste|con acción). • El ingreso neto en riesgo debe ser un ingreso neto que ignora el costo de la acción diseñada para evitar el desgaste. Guía de referencia del comando de creación de datos y TML 313 RetentionOfferROIAnnualized También consulte ActionROI en la página 306 ActionROIAnnualized en la página 307 OfferROI en la página 308 OfferROIAnnualized en la página 309 RetentionActionROI en la página 310 RetentionActionROIAnnualized en la página 311 RetentionOfferROIAnnualized en la página 314 RetentionOfferROIAnnualized Objetivo: Estimar la rentabilidad anual de la inversión por cliente al hacer una oferta diseñada para prevenir desgastes. Una oferta, a diferencia de una acción, tiene un costo diferente si es aceptada por el cliente que si no es aceptada. Sintaxis RetentionOfferROIAnnualized(SaveProbability, ResponseProbability, NetRevenueAtRisk, CostOfOffer, CostOfFulfilment, DaysToROI) Argumentos 314 Tipo Nombre Descripción numérico SaveProbability La probabilidad estimada de que el cliente se "conservará" (para el período en consideración) como resultado de la acción emprendida numérico ResponseProbability La probabilidad estimada de que el cliente responda a la oferta numérico NetRevenueAtRisk El ingreso neto estimado que se perderá si el cliente no se conserva durante el período en consideración numérico CostOfOffer El costo estimado de una oferta (ya sea que el cliente responda o no) numérico CostOfFulfilment El costo estimado de obtener una respuesta positiva a la oferta. numérico DaysToROI El número de días que se requerirá para lograr un ROI determinado. Portrait Miner 7.1 Capítulo 25: Funciones de rentabilidad de la inversión Resultado Tipo Descripción numérico El ROI anualizado por cliente estimado de una oferta diseñada para evitar el desgaste. Nota: • Decir que se ha "conservado" un cliente significa que "se evitó la pérdida de un cliente cuando de lo contrario se hubiera perdido". Este valor es menos el alza en la tasa de desgaste producido por el modelo de alza. Alternativamente, puede calcularse como P(desgaste|sin acción) - P(desgaste|con acción). • El ingreso neto en riesgo debe ser un ingreso neto que ignora el costo de la acción diseñada para evitar el desgaste. También consulte ActionROI en la página 306 ActionROIAnnualized en la página 307 OfferROI en la página 308 OfferROIAnnualized en la página 309 RetentionActionROI en la página 310 RetentionActionROIAnnualized en la página 311 RetentionOfferROI en la página 313 Guía de referencia del comando de creación de datos y TML 315 Capítulo Funciones diversas En esta sección: • • • • • dblookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318 member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319 rankOrder, rankOrderApprox . . . . . . . . . . . . . . . . . . . . . .321 rankOrderMean, rankOrderApproxMean . . . . . . . . . . . .322 rownum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323 26 dblookup dblookup Objetivo: Buscar valores en una tabla de referencias (guardada como enfoque). Sintaxis dblookup(d, k, f, x) Argumentos Tipo Nombre Descripción cadena d El nombre de ruta de la tabla de búsqueda cadena k El nombre del campo clave en la tabla de búsqueda cadena f El nombre de otro campo en la tabla de búsqueda como campo k x El valor de búsqueda Resultado 318 Tipo Descripción como campo f El valor y en el campo f de la tabla d, para el registro indexado por el valor x presente en el campo clave k Portrait Miner 7.1 Capítulo 26: Funciones diversas Nota: • Sólo debe utilizar esta función para tablas de búsqueda pequeñas. Si la tabla de búsqueda es de un tamaño comparable a una tabla de clientes o de transacciones, debe considerar realizar una unión. • Si el valor de búsqueda no está presente en el campo clave, se devuelve el valor nulo. • Si el valor de búsqueda se presenta más de una vez en el campo clave, se utiliza el primer valor. • El espacio en blanco posterior se corta del valor de búsqueda, pero no de los valores del campo clave en la tabla de búsqueda. Esto puede generar un comportamiento inesperado si el campo clave en la tabla de búsqueda incluye valores con espacios en blanco posteriores. • Para la compatibilidad con versiones anteriores, puede colocar un prefijo en el nombre de ruta de la tabla de búsqueda con la cadena focus:. Ejemplo En un enfoque, la tienda en la que un cliente realiza sus compras frecuentes está registrada en el campo PopularShop. Otro enfoque stores.ftr incluye una tabla de búsqueda que describe las instalaciones en cada tienda: En este enfoque, StoreCode es el campo clave, y el campo HasFuel indica si cada tienda tiene una estación de gasolina. La tienda 105 tiene una estación de gasolina, las tiendas 299 y 204 no, y así sucesivamente; la tienda 189 no está en la tabla de búsqueda. Para derivar un campo que marca si la tienda favorita de cada cliente tiene una estación de gasolina: PopularShop dblookup("focus:stores.ftr", "StoreCode", "HasFuel", PopularShop) 105 1 299 0 204 0 189 null member Objetivo: Determinar la pertenencia a un conjunto. Sintaxis member(x, , , ...) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El valor que será comprobado como x , , ... Los elementos del conjunto Resultado Guía de referencia del comando de creación de datos y TML 319 member Tipo Descripción entero 1 (true) if x está en el conjunto contrario 0 (false) ; de lo Nota: • Solo se pueden utilizar valores literales (números, cadenas o fechas) para la lista de elementos del conjunto. • En general, es más eficiente utilizar la función miembro que una disyunción de pruebas de igualdad. Por ejemplo, la expresión strmember(F, "a", "b", "c") es más rápida de evaluar que F = "a" or F = "b" or F = "c". • Para buscar compatibilidad hacia atrás, puede utilizar strmember en vez de member cuando los argumentos sean cadenas. • Los espacios en blanco al final de las cadenas no son ignorados. Ejemplos Para utilizar los dos primeros caracteres de un campo StateCode para identificar clientes de la costa Este u Oeste: StateCode miembro (substr (StateCode, 0, 1), "CA", "OR", WA") OR009 1 CA043 1 UT005 0 WA027 1 Para marcar clientes con números telefónicos de 10 dígitos que tengan los códigos de área de Edimburgo (131) o Glasgow (141) (determinando los tres primeros dígitos utilizando el operador div [consulte Operadores aritméticos en la página 195]): TelNo si es miembro (TelNo div 10000000, 131, 141) entonces "Edim/Glas" si no nulo 1312204491 Edim/Glas 1753833999 null 1611234567 null 1417654321 Edim/Glas También consulte División de agregaciones: la cláusula by en la página 156 320 Portrait Miner 7.1 Capítulo 26: Funciones diversas rankOrder, rankOrderApprox Objetivo: Identificar el orden de un valor dentro de una lista de valores. Sintaxis rankOrder (x, , , ...) rankOrderApprox (x, , , ...) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El valor que debe graduarse como x , , ... La lista de valores para comparar Resultado Tipo Descripción entero La posición de la primera ocurrencia de x dentro de la lista de valores obtenidos mediante la clasificación de , , ... en orden descendente (de la última a la primera para las fechas; en orden alfabético inverso para las cadenas) Si x no aparece en la lista, rankOrder devuelve nulo, mientras que rankOrderApprox devuelve la posición de x dentro de la lista de valores obtenidos mediante la clasificación de x, , , ... en orden descendente. Nota: • Cuando el valor que debe graduarse aparece exactamente una vez en la lista de valores, rankOrder, rankOrderApprox, rankOrderMean y rankOrderApproxMean dan todos el mismo resultado. • Cuando el valor que debe graduarse aparece más de una vez en la lista de valores, rankOrderApprox da el mismo resultado que rankOrder. • Cuando el valor que debe graduarse no aparece en la lista de valores, rankOrderApprox da el mismo resultado que rankOrderApproxMean. • Para las cadenas, "orden alfabético" significa el orden natural de la representación de los caracteres subyacentes. Ejemplos rankOrder(6.74, 6.74, 1.99, 0.00, 9.27) es igual a 2. rankOrderApprox(6.74, 1.99, 0.00, 9.27) es igual a 2. Para verificar la graduación en un año del número de llamadas de un cliente en el 4º trimestre: Guía de referencia del comando de creación de datos y TML 321 rankOrderMean, rankOrderApproxMean rankOrder(CallsQ4, CallsQ1, CallsQ2, CallsQ3, CallsQ4) Para verificar la graduación en el mes 5 del número de llamadas de un cliente con respecto a los cuatro meses anteriores: RankOrderApprox(CallsM5, CallsM1, CallsM2, CallsM3, CallsM4) También consulte rankOrderMean, rankOrderApproxMean en la página 322 rankOrderMean, rankOrderApproxMean Objetivo: Identificar la graduación de un valor dentro de una lista de valores, o su graduación promedio si aparece más de una vez. Sintaxis rankOrderMean(x, rankOrderApproxMean(x, , , ...) , , ...) Argumentos Tipo Nombre Descripción entero, real, fecha, o cadena x El valor que debe graduarse como x , , ... La lista de valores para comparar Resultado Tipo Descripción real La clasificación media de x dentro de la lista de valores obtenidos mediante la clasificación de , , ... en orden descendente (de la última a la primera para las fechas; en orden alfabético inverso para las cadenas) Si x no aparece en la lista, rankOrderMean devuelve nulo, mientras que rankOrderApproxMean devuelve la posición de x dentro de la lista de valores obtenidos mediante la clasificación de x, , , ... en orden descendente. Nota: • Cuando el valor a jerarquizar aparece exactamente una vez en la lista de valores, rankOrder, rankOrderApprox, rankOrderMean y rankOrderApproxMean todas dan el mismo resultado. • Cuando el valor que debe graduarse aparece más de una vez en la lista de valores, rankOrderApproxMean da el mismo resultado que rankOrderMean. 322 Portrait Miner 7.1 Capítulo 26: Funciones diversas • Cuando el valor que debe graduarse no aparece en la lista de valores, rankOrderApproxMean da el mismo resultado que rankOrderApprox. • Para las cadenas, "orden alfabético" significa el orden natural de la representación de los caracteres subyacentes. Ejemplos rankOrderMean(6.74, 6.74, 1.99, 6.74, 9.27) es igual a 2.5. rankOrderApproxMean(6.74, 1.99, 6.74, 9.27, 6.74) es igual a 2.5. También consulte rankOrder, rankOrderApprox en la página 321 rownum Objetivo: Mostrar el número de cada fila en una tabla. Sintaxis rownum() Argumentos Ninguno Resultado Tipo Descripción entero Un número de índice de 1 al número de registros en la tabla Nota: Sólo se puede usar esta función en una derivación de Decision Studio, en el archivo de derivación para qsderive o la ventana Derivar campos equivalente en el archivo seguidor para qstrack o en un archivo de selecciones para qsselect. Ejemplos Para agregar una columna de índice a un conjunto de datos de registro N, con los valores : Identificación rownum() AZ195 1 DI539 2 JD974 3 BY643 4 Guía de referencia del comando de creación de datos y TML 323 Capítulo Rangos En esta sección: • • • • • • • • • • • • • • • • • bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326 Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327 DayFrom, WeekFrom, MonthFrom, YearFrom . . . . . . . .328 DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328 DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins . . . . . . .329 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost . . . . . . . . .330 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost .333 DayRange, WeekRange, MonthRange, YearRange . . . .334 DayTo, WeekTo, MonthTo, YearTo . . . . . . . . . . . . . . . . . .335 EqualRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 EqualRangeWidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337 NegativeNonNegative . . . . . . . . . . . . . . . . . . . . . . . . . . . .337 PreDuringPost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338 PrePost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339 Sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340 27 bin bin Objetivo: Obtener un índice de rangos correspondientes a un valor. Sintaxis bin(binning, x) Argumentos Tipo Nombre Descripción rangos binning Una creación de rangos con nombre, con valores de parámetro (que deben ser valores literales) en paréntesis si se requiere entero, real, fecha, o cadena x Un valor compatible con la creación de rangos Resultado Tipo Descripción entero El índice de rango del rango en el que está x Nota: • Los índices de rango son enteros positivos. Para una creación de rangos numéricos con n rangos nominales (numerados de 2 a n + 1), los rangos de final inferior y superior se numeran en 1 y n + 2 respectivamente, mientras que los rangos nulos y sin clasificar se enumeran en n + 3 y n + 4. • Esta función no está disponible en Decision Studio. No obstante, si x es un campo y b es el rango primario asociado con x, se puede obtener el mismo resultado utilizando segindex: segindex() by x Ejemplos Dividir las agregaciones con la creación de rangos iguales EqualRange en el campo Amount, esto da como resultado una agregación segmentada en ocho (cuatro rangos internos entre valores de monto de 20 y 100 dos rangos de fin, un rango nulo y un rango sin clasificar): create totalPointsByAmountBands := sum(PointsRedeemed) by bin(EqualRange(20, 100, 4), Amount); Agregaciones divididas en ocho segmentos basadas en la creación de rangos de campaña PrePost, que comienza en mayo de 1999, y con agregados del mes anterior y posterior a la campaña: create totalSpendPrePostMayCampaign_ := sum(Amount) by bin(PrePost(todate(19990401), todate(19990501), todate(19990601)), PurchaseDate); También consulte 326 Portrait Miner 7.1 Capítulo 27: Rangos Boolean en la página 327 DayFrom, WeekFrom, MonthFrom, YearFrom en la página 328 DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom en la página 328 DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins en la página 329 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost en la página 330 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo en la página 331 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth en la página 332 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost en la página 333 DayRange, WeekRange, MonthRange, YearRange en la página 334 DayTo, WeekTo, MonthTo, YearTo en la página 335 EqualRange en la página 336 EqualRangeWidth en la página 337 NegativeNonNegative en la página 337 PreDuringPost en la página 338 PrePost en la página 339 Sign en la página 340 División de agregaciones: la cláusula by en la página 156 Boolean Objetivo:Valores booleanos de rangos [consulte Datos booleanos en la página 185]. Parámetros Ninguno Resultado Índice de rangos Valores 1 false 2 true 3 nulo [Consulte El valor null en la página 184] 4 sin clasificar Guía de referencia del comando de creación de datos y TML 327 DayFrom, WeekFrom, MonthFrom, YearFrom DayFrom, WeekFrom, MonthFrom, YearFrom Objetivo: Valores de fecha de rangos en un número específico de períodos (días, meses o años) posteriores a una fecha dada. Parámetros Tipo Nombre Descripción fecha a ("start_date") El comienzo de la porción periódica de la creación de rangos entero n ("num_bins") El número de períodos (días, semanas, meses o años) en la porción periódica de la creación de rangos. Resultado Índice de rangos Valores 1 fechas anteriores a "a"; el rango de extremo inferior 2, ..., n + 1 los períodos consecutivos n posteriores a "a" n+2 períodos de fechas n después de a y posteriores; el rango de extremo superior n+3 nulo [Consulte El valor null en la página 184] n+4 sin clasificar También consulte DayRange, WeekRange, MonthRange, YearRange en la página 334 DayTo, WeekTo, MonthTo, YearTo en la página 335 DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom Objetivo: Valores de fecha de rango en un número específico de períodos después de una fecha dada, donde cada período es un número específico de días, semanas, meses o años. Parámetros 328 Portrait Miner 7.1 Capítulo 27: Rangos Tipo Nombre Descripción fecha a ("start_date") El comienzo de la porción periódica de la creación de rangos entero m ("width") El número de unidades (días, semanas, meses, o años) en un período entero n ("num_bins") El número de rangos en la porción periódica de la creación de rangos Resultado Índice de rangos Valores 1 fechas anteriores a "a"; el rango de extremo inferior 2, ..., n + 1 los períodos consecutivos n (cada uno de m unidades) posteriores a "a" n+2 fechas n x unidades de m después de a y posteriores; el rango de extremo superior n+3 nulo [Consulte El valor null en la página 184] n+4 sin clasificar También consulte DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost en la página 330 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo en la página 331 DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins Objetivo: Valores de fecha de rangos en aproximadamente el número de períodos especificados entre dos fechas dadas, donde el período es un múltiplo fijo de la unidad (día, semana, mes o año). Parámetros Tipo Nombre Descripción fecha a ("start_date") El comienzo de la porción periódica de la creación de rangos Guía de referencia del comando de creación de datos y TML 329 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost Tipo Nombre Descripción fecha b ("end_date") El final de la porción periódica de la creación de rangos entero n ("num_bins") El número objetivo de períodos (múltiplos de un día, una semana, un mes o un año) en la porción periódica de la creación de rangos. Resultado Índice de rangos Valores 1 fechas anteriores a "a"; el rango de extremo inferior 2, ..., N - 3 períodos entre a y b N-2 fechas b y posteriores; el rango de extremo superior N-1 nulo [Consulte El valor null en la página 184] n sin clasificar Nota: • Estas creaciones de rangos son como la creación de rangos DayRange, WeekRange, MonthRange, and YearRange [consulte DayRange, WeekRange, MonthRange, YearRange en la página 334] , excepto por el hecho de que un período puede incluir una o más unidades (días, semanas, meses o años) para arrojar aproximadamente el número objetivo de rangos. • Cuando un período es de dos o más unidades, el rango N - 3 puede ser más corto que los rangos 2 a N - 4. También consulte DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth en la página 332 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost Objetivo: Valores de fecha de rango en números específicos de rangos y después de una fecha de referencia dada, donde cada rango es un múltiplo dado de la unidad (día, semana, mes o año). Parámetros 330 Tipo Nombre Descripción fecha a ("ref_date") La fecha de referencia para la creación de rangos Portrait Miner 7.1 Capítulo 27: Rangos Tipo Nombre Descripción entero m ("width") El número de rangos antes de la fecha de referencia y después de ella entero n ("num_bins") El número de unidades (días, semanas, meses, o años) en cada rango Resultado Índice de rangos Valores 1 fechas anteriores a n x unidades m antes de a; el rango de extremo inferior 2, ..., n + 1 los períodos consecutivos n (cada uno de m unidades) anteriores a "a" n + 2, ..., 2n + 1 los períodos consecutivos n (cada uno de m unidades) posteriores a "a" 2n + 2 fechas n x unidades de m después de a y posteriores; el rango de extremo superior 2n + 3 nulo [Consulte El valor null en la página 184] 2n + 4 sin clasificar También consulte DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom en la página 328 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo en la página 331 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost en la página 333 PreDuringPost en la página 338 PrePost en la página 339 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo Objetivo: Valores de fecha de rango en un número específico de períodos anteriores a una fecha dada, donde cada período es un número específico de días, semanas, meses o años. Parámetros Guía de referencia del comando de creación de datos y TML 331 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth Tipo Nombre Descripción fecha b ("end_date") El final de la porción periódica de la creación de rangos entero m ("width") El número de unidades (días, semanas, meses, o años) en un período entero n ("num_bins") El número de rangos en la porción periódica de la creación de rangos Resultado Índice de rangos Valores 1 fechas anteriores a n x unidades m antes de a; el rango de extremo inferior 2, ..., n + 1 los períodos consecutivos n (cada uno de m unidades) anteriores a "a" n+2 fechas a y posteriores; el rango de extremo superior n+3 nulo [Consulte El valor null en la página 184] n+4 sin clasificar También consulte DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom en la página 328 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost en la página 330 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth Objetivo: Valores de fecha de rangos en períodos entre dos fechas dadas, donde el período es un múltiplo específico de la unidad (día, semana, mes o año). Parámetros 332 Tipo Nombre Descripción fecha a ("start_date") El comienzo de la porción periódica de la creación de rangos Portrait Miner 7.1 Capítulo 27: Rangos Tipo Nombre Descripción fecha b ("end_date") El final de la porción periódica de la creación de rangos entero m ("width") El número de unidades (días, semanas, meses, o años) en un período Resultado Índice de rangos Valores 1 fechas anteriores a "a"; el rango de extremo inferior 2, ..., N - 3 períodos entre a y b N-2 fechas b y posteriores; el rango de extremo superior N-1 nulo [Consulte El valor null en la página 184] n sin clasificar Nota: • Estas creaciones de rangos son como la creación de rangos DayRange, WeekRange, MonthRange, and YearRange [consulte DayRange, WeekRange, MonthRange, YearRange en la página 334] , excepto por el hecho de que un período puede ser de una o más unidades (días, semanas, meses o años). • Cuando un período es de dos o más unidades, el rango N - 3 puede ser más corto que los rangos 2 a N - 4. También consulte DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins en la página 329 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost Objetivo: Valores de fecha de rango en números de períodos específicos (días, semanas, meses o años) anteriores a una fecha de referencia dada y posteriores a ella. Parámetros Tipo Nombre Descripción fecha a ("ref_date") La fecha de referencia para la creación de rangos Guía de referencia del comando de creación de datos y TML 333 DayRange, WeekRange, MonthRange, YearRange Tipo Nombre Descripción entero m ("before") El número de períodos (días, semanas, meses o años) para los que deben crearse rangos antes de la fecha de referencia. entero n ("after") El número de períodos para los que deben crearse rangos después de la fecha de referencia. Resultado Índice de rangos Valores 1 fechas anteriores a períodos de m antes de a; el rango de extremo inferior 2, ..., m + 1 los períodos consecutivos m anteriores a "a" m + 2, ..., m + n + 1 los períodos consecutivos n posteriores a "a" m+n+2 períodos de fechas n después de a y posteriores; el rango de extremo superior m+n+3 nulo [Consulte El valor null en la página 184] m+n+4 sin clasificar También consulte DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost en la página 330 PreDuringPost en la página 338 PrePost en la página 339 DayRange, WeekRange, MonthRange, YearRange Objetivo: Valores de fechas de rango en períodos (días, semanas, meses o años) entre dos fechas dadas. Parámetros 334 Tipo Nombre Descripción fecha a ("start_date") El comienzo de la porción periódica de la creación de rangos Portrait Miner 7.1 Capítulo 27: Rangos Tipo Nombre Descripción fecha b ("end_date") El final de la porción periódica de la creación de rangos Resultado Índice de rangos Valores 1 fechas anteriores a "a"; el rango de extremo inferior 2, ..., N - 3 períodos (días, semanas, meses o años) entre a yb N-2 fechas b y posteriores; el rango de extremo superior N-1 nulo [Consulte El valor null en la página 184] n sin clasificar Nota: • Si hay menos de un período completo entre a y b, el rango 2 contiene fechas entre a (incluido) y b (excluido). • Si no hay un número exacto de períodos entre a y b (pero hay como mínimo un período completo), el rango que precede inmediatamente a b se alarga para darle lugar al exceso. También consulte DayFrom, WeekFrom, MonthFrom, YearFrom en la página 328 DayTo, WeekTo, MonthTo, YearTo en la página 335 DayTo, WeekTo, MonthTo, YearTo Objetivo: Valores de fecha de rangos en un número específico de períodos (días, meses o años) anteriores a una fecha dada. Parámetros Tipo Nombre Descripción fecha b ("end_date") El final de la porción periódica de la creación de rangos entero n ("num_bins") El número de períodos (días, semanas, meses o años) en la porción periódica de la creación de rangos. Resultado Guía de referencia del comando de creación de datos y TML 335 EqualRange Índice de rangos Valores 1 fechas anteriores a n períodos antes de b; el rango de extremo inferior 2, ..., n + 1 los períodos consecutivos n anteriores a "b" n+2 fechas b y posteriores; el rango de extremo superior n+3 nulo [Consulte El valor null en la página 184] n+4 sin clasificar También consulte DayFrom, WeekFrom, MonthFrom, YearFrom en la página 328 DayRange, WeekRange, MonthRange, YearRange en la página 334 EqualRange Objetivo: Los valores numéricos de rangos en un número especificado de intervalos de igual ancho. Parámetros Tipo Nombre Descripción real a ("from") El extremo inferior de la porción de igual rango de la creación de rangos real b ("to") El extremo superior de la porción de igual rango de la creación de rangos entero n ("num_bins") El número de rangos en la porción de igual rango de la creación de rangos Resultado Índice de rangos 1 2, ..., n + 1 n+2 336 Valores ; el rango de extremo inferior [a, a + (b - a)/n), ..., [b - (b - a)/n, b) ; el rango de extremo superior n+3 null [Consulte El valor null en la página 184] n+4 sin clasificar Portrait Miner 7.1 Capítulo 27: Rangos También consulte EqualRangeWidth en la página 337 EqualRangeWidth Objetivo: Valores numéricos de rangos en intervalos de un ancho específico. Parámetros Tipo Nombre Descripción real a ("from") El extremo inferior de la porción de igual rango de la creación de rangos real b ("to") El extremo superior de la porción de igual rango de la creación de rangos real r ("width") El ancho de rangos en la porción de igual rango de la creación de rangos Resultado Índice de rangos 1 Valores ; el rango de extremo inferior 2, ..., N - 3 rangos de igual ancho y ancho aproximado r N-2 el rango de extremo superior N-1 nulo [Consulte El valor null en la página 184] n sin clasificar Nota: Si a - b no es múltiplo exacto de r, se usa una aproximación de r, de modo que los rangos entre a y b sean del mismo ancho. También consulte EqualRange en la página 336 NegativeNonNegative Objetivo: Valores numéricos de rango de acuerdo con el signo, agrupando 0 con los valores positivos. Guía de referencia del comando de creación de datos y TML 337 PreDuringPost Parámetros Ninguno Resultado Índice de rangos Valores 1 ; es decir, valores negativos 2 ; es decir, valores no negativos 3 nulo [Consulte El valor null en la página 184] 4 sin clasificar También consulte Sign en la página 340 PreDuringPost Objetivo: Valores de fecha de rangos en períodos pre-campaña, durante la campaña y post-campaña. Parámetros Tipo Nombre Descripción fecha a ("pre_date") El comienzo del período de pre-campaña fecha b ("campaign_start_date") El comienzo de la campaña fecha c ("campaign_end_date") El final de la campaña fecha d ("post_date") El final del período post-campaña Resultado Índice de rangos Valores 1 fechas anteriores a "a"; el rango de extremo inferior 2 Fechas entre a (incluido) y b (excluido) 3 fechas entre b (incluido) and c (excluido) 4 fechas entre c (incluido) and d (excluido) 5 fechas d y posteriores; el rango de extremo superior 6 nulo [Consulte El valor null en la página 184] 7 sin clasificar También consulte 338 Portrait Miner 7.1 Capítulo 27: Rangos DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost en la página 330 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost en la página 333 PrePost en la página 339 PrePost Objetivo: Valores de fecha de rangos en períodos pre-campaña and post-campaña. Parámetros Tipo Nombre Descripción fecha a ("pre_date") El comienzo del período de pre-campaña fecha b ("campaign_date") La fecha de la campaña fecha c ("post_date") El final del período post-campaña Resultado Índice de rangos Valores 1 fechas anteriores a "a"; el rango de extremo inferior 2 Fechas entre a (incluido) y b (excluido) 3 fechas entre b (incluido) and c (excluido) 4 fechas c y posteriores; el rango de extremo superior 5 nulo [Consulte El valor null en la página 184] 6 sin clasificar También consulte DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost en la página 330 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost en la página 333 PreDuringPost en la página 338 Guía de referencia del comando de creación de datos y TML 339 Sign Sign Objetivo: Valores numéricos de rango de acuerdo con el signo. Parámetros Ninguno Resultado Índice de rangos Valores 1 2 3 ; es decir, valores negativos 0 ; es decir, valores positivos 4 nulo [Consulte El valor null en la página 184] 5 sin clasificar También consulte NegativeNonNegative en la página 337 340 Portrait Miner 7.1 Capítulo XML en Portrait Miner En esta sección: • • • • • • • • • • • XML en Portrait Miner . . . . . . . . . . . . . . . . . . . . . . . . . . . .342 Especificación de metadatos para qsimportmetadata . .342 Especificación de agregación para qsmeasure . . . . . . .349 Especificación de derivación para qsderive . . . . . . . . .351 Especificación de selección para qsselect . . . . . . . . . .352 Especificación de tabulación cruzada para qsxt . . . . . .353 Especificación de mapeo del nombre de campo para qsrenamefields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356 Especificación del árbol de decisión para qsdecisiontree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .357 Especificación de creación de un cuadro de mando para qsscorecard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359 Especificaciones de creación de rangos . . . . . . . . . . . .361 valores de atributo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368 28 XML en Portrait Miner XML en Portrait Miner Para permitir el intercambio sencillo de resultados con otras aplicaciones, XML se utiliza en todo Portrait Miner, de acuerdo con la definición de esquema XML de Portrait Miner, http://www.quadstone.com/xml Todas las entradas en XML a los comandos de creación de datos de Portrait Miner (y a cualquier función de Portrait Miner que se implemente a través de los comandos de creación de datos de Portrait Miner) se deben ingresar en el espacio de nombre de Portrait Miner, http://support.portraitsoftware.com. La manera más sencilla de garantizarlo es incluir el atributo xmlns="http://support.portraitsoftware.com" en el elemento de raíz del documento XML. Los archivos XML creados por Portrait Miner incluyen automáticamente el atributo opcional schemaLocation que señala esquemas en http://www.quadstone.com/xml/qs6.0A. Si utiliza un editor que reconoce los esquemas para crear los archivos XML, podrá acceder a estos esquemas directamente desde Portrait Miner en: <pmhome>/server/qs6.0A/integration/schemas (<pmhome> es el directorio de instalación de Portrait Miner). También encontrará ejemplos de cómo procesar estos archivos XML en: <pmhome>/server/qs6.0A/etc/xslt También consulte Especificación de agregación para qsmeasure en la página 349 Especificaciones de creación de rangos en la página 361 Especificación de tabulación cruzada para qsxt en la página 353 Especificación del árbol de decisión para qsdecisiontree en la página 357 Especificación de derivación para qsderive en la página 351 Especificación de mapeo del nombre de campo para qsrenamefields en la página 356 Especificación de metadatos para qsimportmetadata en la página 342 Especificación de creación de un cuadro de mando para qsscorecard en la página 359 Especificación de selección para qsselect en la página 352 Especificación de metadatos para qsimportmetadata metadata 342 Requerido Valor Descripción focus elemento El enfoque raíz Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner Ejemplos Los ejemplos describen los metadatos para la importación. <?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://www.quadstone.com/xml"> <focus> <comment>This focus was created for the Retail Analysis project.</comment> </focus> </metadata> focus Opcional Valor Descripción launch atributo del nombre del enfoque nombre del subenfoque predeterminado name atributo del nombre del enfoque Nombre de un subenfoque objective atributo del nombre de campo Nombre del campo objetivo partition atributo del nombre de campo Nombre del campo partición comment elemento Comentario del enfoque history elemento Historial del enfoque field elemento Campos a los cuales importar los metadatos focus elemento Definiciones de subenfoques Nota: El atributo launch sólo puede aparecer en el enfoque raíz. Todos los demás subenfoques deben contar con un atributo de name. Ejemplo Describir el enfoque raíz. <?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://www.quadstone.com/xml"> <focus> <comment>This focus was created for the Retail Analysis project.</comment> </focus> </metadata> field en metadatos Requerido Valor Descripción name atributo del nombre de campo Nombre del campo que se está definiendo ref atributo del nombre de campo nombre del campo al que se hace referencia Guía de referencia del comando de creación de datos y TML 343 fdl Opcional Valor Descripción type consultar tipo de campo Tipo de datos que representan este campo length atributo del entero Extensión de la representación de secuencia analysis atributo binario Si este campo es candidato para el análisis export atributo binario Si este campo es de exportación comment elemento Comentario del campo binning elemento El campo creación de rangos fdl elemento Expresión FDL de derivación de campo recordselection elemento Campo selección de registro Nota: • Cuando se está definiendo un campo, por ejemplo como una derivación, es necesario contar con un atributo name . Cuando se hace referencia al campo, por ejemplo para su inclusión en un subenfoque, es necesario contar con un atributo ref. • length y type son atributos que solamente pueden utilizarse para definir un campo (cuando el atributo name se ha asignado). Ejemplos Describir un campo de secuencia: <field name="HomePostCode" type="string" length="8"/> Describir un candidato para análisis: <field name="TimeAtAddressMonths" type="integer" analysis="true"/> También consulte Especificaciones de creación de rangos en la página 361 fdl Requerido Valor Descripción content texto Expresión FDL que describe la derivación de campo Opcional Valor Descripción seed atributo del entero La semilla numérica para el generador de números aleatorios Ejemplos <fdl>mode(Store)</fdl> <fdl>if PaymentMethod = "CA" then Amount else 0 344 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner </fdl> <fdl seed="123">rndUniform()</fdl> comment Requerido Valor Descripción content texto Descripción en texto del comentario Requerido Valor Descripción xhtml atributo binario Un comentario recibe el formato XHTML div elemento de la secuencia Descripción en texto con formato del comentario, que puede contener cualquier marca XHTML que esté permitida para aparecer en el elemento <div> o Nota: Cuando se utiliza el atributo xhtml, siempre lleva el valor true. Ejemplos Agregar un comentario a un enfoque: <?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://www.quadstone.com/xml"> <focus> <comment>This focus was created for the Retail Analysis project.</comment> </focus> </metadata> Agregar un comentario con formato a un enfoque: <?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://www.quadstone.com/xml"> <focus> <comment xhtml="true"> <div> This focus was created for the Retail Analysis project.<br/> An audit is available on the <a href="http://intranet.company.com/audits"> intranet</a>. </div> </comment> </focus> </metadata> Guía de referencia del comando de creación de datos y TML 345 history history El historial del enfoque es un único elemento del historial que contiene una serie de elementos de funcionamiento que no está vacía. Cada elemento de funcionamiento es texto sin formato que representa un único comando de creación de datos de Portrait Miner aplicado al enfoque. Requerido Valor Descripción operation elementos de la secuencia Una acción en particular del historial Ejemplo Describe el historial de todas las acciones del enfoque: <history> <operation>qsimportflat -input DB.fdd -output DB.ftr</operation> <operation>qsupdate -from template.ftr -to DB.ftr</operation> </history> recordselection Opcional Valor Descripción numeric elemento Selección del registro numérico date elemento Selección de la fecha de registro categorical elemento Selección del registro categórico Nota: El elemento recordselection toma uno de los subelementos numeric, date, o category. Ejemplos Selección de rango entero entre -2677 (incluido) y 16808 (excluido) y excluyendo los Nulos: <field name="Income" type="integer"> <recordselection> <numeric nullhandling="exclude"> <range min="-2677" minisincluded="true" max="16808" maxisincluded="false"/> </numeric> </recordselection> </field> 346 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner numeric Requerido Valor Descripción nullhandling consultar nullhandling Especificar de qué manera la selección de registro manipula los valores nulos Opcional Valor Descripción range elemento Especificar la selección de rango numérico Nota: El elemento numeric acepta múltiples subelementos de range . Ejemplo Eliminar la selección de un campo existente y cualquier selección Nula: <field name="Age"> <recordselection> <numeric nullhandling="nomention"/> </recordselection> </field> date Requerido Valor Descripción nullhandling consultar nullhandling Especificar de qué manera la selección de registro manipula los valores nulos Opcional Valor Descripción range elemento Especificar la selección de fecha de rango Nota: El elemento date acepta múltiples subelementos de range. Ejemplo Selección de rango de fecha, sólo disponible con objetivos inclusivos, y fechas especificadas en un formato fijo: <field name="DefaultDate"> <recordselection> <date nullhandling="nomention"> <range min="1940-01-03T16:22:46Z" max="1948-05-19T00:29:17Z"/> <range min="1956-04-01T20:35:25Z" max="1973-09-01T04:48:59Z"/> Guía de referencia del comando de creación de datos y TML 347 categorical <range min="1981-03-15T16:54:52Z" max="2002-08-22T01:11:34Z"/> <range min="2012-09-08T01:19:24Z" max="2029-12-08T05:32:51Z"/> </date> </recordselection> </field> categorical Requerido Valor Descripción nullhandling consultar nullhandling Especificar de qué manera la selección de registro manipula los valores nulos otherstatus consultar otherstatus Especificar si la otra categoría se selecciona o se deselecciona. Opcional Valor Descripción select elemento Los valores de las categorías en la selección Nota: El elemento categorical acepta múltiples subelementos select. Ejemplo Una selección categórica que utiliza otherstatus para deseleccionar cualquier campo que no haya sido mencionado explícitamente, por ejemplo, seleccionar únicamente las categorías D y E: <field name="Lifestage"> <recordselection> <categorical nullhandling="selected" otherstatus="deselected"> <select status="selected" value="D"/> <select status="selected" value="E"/> </categorical> </recordselection> </field> Quitar la selección de un campo categórico: <field ref="Lifestage"> <recordselection> <categorical nullhandling="selected" otherstatus="selected"> </categorical> </recordselection> </field> 348 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner range Opcional Valor Descripción min atributo numérico o de fecha Rango mínimo de la selección de registro max atributo numérico o de fecha Rango máximo de la selección de registro minisincluded atributo binario Incluir este valor en el rango mínimo maxisincluded atributo binario Incluir este valor en el rango máximo Nota: El elemento range requiere al menos un atributo min y uno max. select Requerido Valor Descripción value atributo de secuencia Nombre de la categoría status consultar estado Incluir o excluir de la selección Especificación de agregación para qsmeasure aggregations Requerido Valor Descripción field elementos Definiciones del campo Ejemplo Describe la creación de dos nuevos agregados: <?xml version="1.0" encoding="UTF-8"?> <aggregations xmlns="http://www.quadstone.com/xml"> <field name="mostCommonStore" context="aggregation"> <fdl>mode(Store)</fdl> </field> <field name="averageSpendInStore_" context="aggregation"> <fdl>mean(Amount)</fdl> <by>StoreSplitFunction(Store)</by> </field> </aggregations> Guía de referencia del comando de creación de datos y TML 349 field en agregados field en agregados Requerido Valor Descripción name atributo del nombre de campo Nombre del campo que será creado context consultar medir contexto Ya sea que este campo sea utilizado en un archivo de agregación, de estadística o de rastreo fdl elemento Expresión FDL que describe la agregación Opcional Valor Descripción type consultar tipo de campo Tipo de datos del campo que será creado length atributo del entero Extensión de un campo de secuencia temporary atributo binario Si este campo es creado en el enfoque de salida by elemento de la secuencia La función split-by where elemento de la secuencia Filtro de registro de la expresión FDL default elemento de la secuencia Valor predeterminado de la agregación Ejemplos Describe un campo con la agregación mode en el campo Store: <field name="mostCommonStore" context="aggregation"> <fdl>mode(Store)</fdl> </field> Describe con la agregación mean en el campo Amount, dividida por función StoreSplitFunction: <field name="averageSpendInStore_" context="aggregation"> <fdl>mean(Amount)</fdl> 350 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner <by>StoreSplitFunction(Store)</by> </field> Especificación de derivación para qsderive derivations Requerido Valor Descripción field elementos Definiciones del campo Ejemplo Describir un conjunto de tres derivaciones: <?xml version="1.0" encoding="UTF-8"?> <derivations xmlns="http://www.quadstone.com/xml"> <field name="TransMonth"> <fdl>month(PurchaseDate)</fdl> </field> <field name="CashRecd"> <fdl>if PaymentMethod = "CA" then Amount else 0</fdl> </field> <field name="Random"> <fdl seed="123">rndUniform()</fdl> </field> </derivations> field en derivaciones Requerido Valor Descripción name atributo del nombre de campo Nombre del campo que será creado fdl elemento Expresión FDL que describirá el campo que será creado Opcional Valor Descripción type consultar tipo de campo Tipo de datos del campo que será creado length atributo del entero Extensión de un campo de secuencia Ejemplos Guía de referencia del comando de creación de datos y TML 351 Especificación de selección para qsselect Describir un campo utilizando una función incorporada: <field name="TransMonth"> <fdl>month(PurchaseDate)</fdl> </field> Describir un campo utilizando una simple instrucción de control: <field name="CashRecd"> <fdl>if PaymentMethod = "CA" then Amount else 0</fdl> </field> Describir un campo aleatorio con una semilla específica: <field name="Random"> <fdl seed="123">rndUniform()</fdl> </field> Especificación de selección para qsselect selections Opcional Valor Descripción field elementos Campos para crear esta selección Ejemplo Describir una selección aleatoria: <xml version="1.0" encoding="UTF-8"?> <selections xmlns="http://www.quadstone.com/xml"?> <field name="random" context="selection"> <fdl seed="12345678">rndUniform() \< 0.1</fdl> </field> </selections> field en selecciones Requerido Valor Descripción name atributo del nombre de campo Nombre del campo que será creado fdl elemento Expresión FDL que describe la selección de registros. Debe generar un entero con valor cero o un resultado context 352 selection Este campo es para ser utilizado con qsselect Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner Ejemplo Describir una selección aleatoria: <field name="random" context="selection"> <fdl seed="12345678">rndUniform() \< 0.1</fdl> </field> Especificación de tabulación cruzada para qsxt crosstabset Requerido Valor Descripción crosstab elementos Tabulaciones cruzadas que se evaluarán Opcional Valor Descripción profile atributo binario Si el conjunto de tabulaciones cruzadas representa un perfil, en lugar de representar una tabulación cruzada description elemento de la secuencia descripción del conjunto de tabulaciones cruzadas Ejemplo Describir un único conjunto de tabulaciones cruzadas: <?xml version="1.0" encoding="UTF-8"?> <crosstabset xmlns="http://www.quadstone.com/xml"> <description>No Description</description> <crosstab indexscheme="compact1"> <description>No Description</description> <specification> <field name="Age"/> <field name="Gender"/> <function name="count"/> <function name="mode"> <parameter>MaritalStatus</parameter> </function> </specification> </crosstab> </crosstabset> Guía de referencia del comando de creación de datos y TML 353 crosstab crosstab Requerido Valor Descripción indexscheme compact1 Esquema de clasificación utilizado en esta tabulación cruzada specification elemento Especificación de la tabulación cruzada Opcional Valor Descripción description elementos de la secuencia Descripción de la tabulación cruzada Ejemplo Describir un único conjunto de tabulaciones cruzadas: <?xml version="1.0" encoding="UTF-8"?> <crosstabset xmlns="http://www.quadstone.com/xml"> <description>No Description</description> <crosstab indexscheme="compact1"> <description>No Description</description> <specification> <field name="Age"/> <field name="Gender"/> <function name="count"/> <function name="mode"> <parameter>MaritalStatus</parameter> </function> </specification> </crosstab> </crosstabset> specification en la tabulación cruzada Requerido Valor Descripción function elementos Funciones que se utilizarán como mediciones de tabulaciones cruzadas Opcional Valor Descripción field elementos Campos que se utilizarán como desgloses de segmentación Ejemplo 354 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner Describir una tabulación cruzada de los campos Age y Gender con medidas count() y mode(MaritalStatus): <specification> <field name="Age"/> <field name="Gender"/> <function name="count"/> <function name="mode"> <parameter>MaritalStatus</parameter> </function> </specification> function Requerido Valor Descripción name atributo del nombre de campo Identifica el nombre de la medida Opcional Valor Descripción parameter atributo del nombre de campo Identifica el parámetro de campo para la función Ejemplos Describir una función sin parámetros: <function name="count"/> Describir una función con un único parámetro MaritalStatus: <function name="mode"> <parameter>MaritalStatus</parameter> </function> field en la tabulación cruzada Requerido Valor Descripción name atributo del nombre de campo Nombre del campo que se utilizará en la tabulación cruzada Ejemplo Especificar el campo Age para su uso en la tabulación cruzada: <field name="Age"/> Guía de referencia del comando de creación de datos y TML 355 Especificación de mapeo del nombre de campo para qsrenamefields Especificación de mapeo del nombre de campo para qsrenamefields mappingset Requerido Valor Descripción map elementos Mapeo de los nombres de campo Ejemplo Describir el cambio de nombre de tres campos: <?xml version="1.0" encoding="UTF-8"?> <mappingset xmlns="http://www.quadstone.com/xml"> <map> <name>StartDate</name> <alias>Initialized</alias> </map> <map> <name>Age</name> <alias>CurrentAge</alias> </map> <map> <name>Gender</name> <alias>Sex</alias> </map> </mappingset> map Requerido Valor Descripción name elemento de nombre de campo Nombre del elemento cuyo nombre será cambiado alias elemento de nombre de campo Nuevo nombre del campo Ejemplo Cambiar nombre de campo de StartDate a Initialized: <map> <name>StartDate</name> <alias>Initialized</alias> </map> 356 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner Especificación del árbol de decisión para qsdecisiontree decisiontree Requerido Valor Descripción specification elemento Especificación de creación del árbol de decisiones Ejemplo Describir una especificación para crear el árbol de decisiones con el campo objetivo Age y tres candidatos para el análisis. Como resultado se crea un nuevo campo PredictedAge: <?xml version="1.0" encoding="UTF-8"?> <decisiontree xmlns="http://www.quadstone.com/xml"> <specification nlevels="3"> <objectivefield> <field name="Age"/> </objectivefield> <analysiscandidates> <field name="Gender"/> <field name="MaritalStatus"/> <field name="HomeOwner"/> </analysiscandidates> <resultfield> <field name="PredictedAge"/> </resultfield> </specification> </decisiontree> specification en el árbol de decisión Requerido Valor Descripción nlevels atributo del entero Profundidad del árbol por construir objectivefield elemento de nombre de campo Campo objetivo analysiscandidates elemento nombres de campo Candidatos para el análisis resultfield elemento de nombre de campo Nombre del campo creado para resultados Opcional Valor Descripción splitconstraints elemento Restricciones en la creación del árbol de decisiones Guía de referencia del comando de creación de datos y TML 357 splitconstraints Opcional Valor Descripción kwaysplitfield elemento de nombre de campo Campo k-way split partitionfield elemento de nombre de campo Campo de partición testtrain elemento Metodología de prueba/capacitación que se utilizará Ejemplo Describir una especificación para crear el árbol de decisiones con el campo objetivo Age y tres candidatos para el análisis. Como resultado se crea un nuevo campo PredictedAge: <specification nlevels="3"> <objectivefield> <field name="Age"/> </objectivefield> <analysiscandidates> <field name="Gender"/> <field name="MaritalStatus"/> <field name="HomeOwner"/> </analysiscandidates> <resultfield> <field name="PredictedAge"/> </resultfield> </specification> Nota: • Si el elemento <partitionfield> está vacío, qsdecisiontree ignorará toda partición existente antes de crear el árbol. • Si el elemento <kwaysplitfield> está vacío, qsdecisiontree ignorará toda k-way split existente antes de crear el árbol. splitconstraints 358 Requerido Valor Descripción minpopsize atributo del entero Tamaño mínimo de la población de un segmento minpopsizetreated atributo del entero Tamaño mínimo del segmento de población tratado minpopsizecontrol atributo del entero Tamaño mínimo del segmento de población controlado Opcional Valor Descripción combiningfunction consultar combinar funciones La combinación de funciones se utiliza para seleccionar de qué manera se elige la división final Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner Nota: • Cuando se asigna un elemento partitionfield tanto minpopsizetreated como minpopsizecontrol son atributos splitconstraint válidos. De lo contrario, sólo debe configurarse el atributo minpopsize. • El atributo combiningfunction sólo debe utilizarse cuando está definido el elemento kwaysplitfield. testtrain Requerido Valor Descripción threshold atributo real Proporción de registros, número entre cero y uno, que se utilizará para capacitar la creación del árbol de decisiones namefield elemento de nombre de campo Campo aleatorio que define la división de pruebas y capacitaciones Ejemplo <testtrain threshold="0.5"> <field name="randomField"/> </testtrain> Especificación de creación de un cuadro de mando para qsscorecard scorecard Requerido Valor Descripción specification elemento Especificación para la creación de un cuadro de mando Ejemplo Describir una especificación para crear tarjetas de puntuación con el campo objetivo Age y tres candidatos para el análisis. Como resultado se crea un nuevo campo PredictedAge: <?xml version="1.0" encoding="UTF-8"?> <scorecard xmlns="http://www.quadstone.com/xml"> <specification modeltype="value" nfields="2" iscontinuous="true"> <objectivefield> <field name="Age"/> </objectivefield> <analysiscandidates> Guía de referencia del comando de creación de datos y TML 359 specification en cuadro de mando <field name="Gender"/> <field name="MaritalStatus"/> <field name="HomeOwner"/> </analysiscandidates> <resultfield> <field name="PredictedAge"/> </resultfield> </specification> </scorecard> specification en cuadro de mando Requerido Valor Descripción iscontinuous atributo binario Crea un cuadro de mando objetivo y continuo, sin que importe la configuración de modeltype modeltype consultar tipos de modelo Qué tipo de modelo (binario) crear (ignorado si iscontinuous es verdadero); si no está configurado, crear una cuadro de mando objetivo continuo nfields atributo del entero Cantidad de campos en el cuadro de mando creado objectivefield elemento de nombre de campo Campo objetivo analysiscandidates elemento nombres de campo Candidatos para el análisis resultfield elemento de nombre de campo Nombre del campo de resultados creado Opcional Valor Descripción correlationthreshold atributo real Umbral que si los candidatos para el análisis superan, quedan excluidos por tener demasiada correlación con el objetivo testtrain elemento Metodología de prueba/capacitación que se utilizará Ejemplo <specification modeltype="value" nfields="2" iscontinuous="true"> <objectivefield> <field name="Age"/> </objectivefield> <analysiscandidates> 360 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner <field name="Gender"/> <field name="MaritalStatus"/> <field name="HomeOwner"/> </analysiscandidates> <resultfield> <field name="PredictedAge"/> </resultfield> </specification> Especificaciones de creación de rangos binning Opcional Valor Descripción name atributo de secuencia Nombre de la creación de rangos numeric elemento Creación de rangos numéricos date elemento Creación de rangos de fecha geographic elemento Creación de rangos geográficos categorical elemento Creación de rangos categórica Nota: El elemento binning lleva solo uno de los subelementos numeric, date, geographical categorical. Ejemplos Agregar una creación de rangos numérica al campo LoanAmount: <field name="LoanAmount"> <binning name="LoanAmount-1"> <numeric targetnbins="10" style="equalwidth"/> </binning> </field> Agregar una creación de rangos categórica al campo Gender: <field name="Gender"> <binning name="Gender-1"> <categorical> <categories> <category name="male" levelname="unnamed node"> <category name="1" levelname="base categories" value="1"/> </category> <category name="female"> <category name="2" value="2"/> </category> </categories> </categorical> </binning> </field> Guía de referencia del comando de creación de datos y TML 361 numeric Agregar una creación de rangos de campos geográficos al campo StateCode: <field name="StateCode"> <binning> <geographic> <maplocation>/home/data/maps/us.mif</maplocation> </geographic> </binning> </field> numeric Opcional Valor Descripción targetnbins atributo del entero Cantidad necesaria de rangos adjustnbins atributo binario Ajustar automáticamente la cantidad de rangos para crear límites claros entre rangos. Valor predeterminado: true. forcewholenumbered atributo binario Si la creación de rangos en un campo de valor real debe tener límites con números enteros style consultar estilo de rango Tipo de creación de rangos aplicada binning consultar visualización de creación de rangos Visualización de la creación de rangos minendparam elemento Definición de rango del límite inferior. De manera predeterminada, los rangos de igual ancho utilizan endbins auto, mientras que igual población no utiliza none maxendparam elemento Definición de rango del límite superior. De manera predeterminada, los rangos de igual ancho utilizan endbins auto, mientras que igual población no utiliza non boundaries elemento Límites de rangos para el estilo de creación de rangos definido por el usuario Ejemplo 362 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner Agregar una creación de rangos numéricos de igual población con diez rangos a un campo: <binning name="LoanAmount-1"> <numeric targetnbins="10" style="equalwidth"/> </binning> date Opcional Efecto targetnbins atributo del entero Cantidad necesaria de rangos binby consultar período de fecha Período de la creación de rangos reference consultar referencia de fecha Qué rango de fecha crear y desde qué período de fecha binwidth atributo del entero Cantidad de períodos de tiempo para un rango style consultar estilo de rango Tipo de creación de rangos aplicada binning consultar visualización de creación de rangos Como se deben visualizar los rangos minendparam elemento Definición de rango del límite inferior. De manera predeterminada, los rangos de igual ancho utilizan endbins automáticos, mientras que igual población no utiliza ninguno maxendparam elemento Definición de rango del límite superior. De manera predeterminada, los rangos de igual ancho utilizan endbins automáticos, mientras que igual población no utiliza ninguno boundaries elemento Límites de rangos para el estilo de creación de rangos definido por el usuario Ejemplo Crear una fecha de rangos, por cuatrimestres, a partir del 1 de marzo de 1992. <date display="equalwidth" binwidth="1" binby="quarter" reference="auto" style="equalwidth"> <minendparam type="fixed"> <boundary>1992-03-01T00:00:00Z</boundary> </minendparam> Guía de referencia del comando de creación de datos y TML 363 categorical <maxendparam type="none"/> <boundaries endbins="low"> <boundary>1992-03-01T00:00:00Z</boundary> <boundary>1992-04-01T00:00:00Z</boundary> <boundary>1992-07-01T00:00:00Z</boundary> <boundary>1992-10-01T00:00:00Z</boundary> <boundary>1993-01-01T00:00:00Z</boundary> <boundary>1993-04-01T00:00:00Z</boundary> <boundary>1993-07-01T00:00:00Z</boundary> <boundary>1993-10-01T00:00:00Z</boundary> <boundary>1994-01-01T00:00:00Z</boundary> <boundary>1994-04-01T00:00:00Z</boundary> <boundary>1994-07-01T00:00:00Z</boundary> <boundary>1994-10-01T00:00:00Z</boundary> <boundary>1995-01-01T00:00:00Z</boundary> <boundary>1995-04-01T00:00:00Z</boundary> </boundaries> </date> categorical Requerido Valor Descripción categories elemento Descripción de la jerarquía de la categoría hierarchylocation elemento de archivo Ubicación del archivo que contiene la descripción de jerarquía de la categoría selectn elemento Cantidad de categorías por crear Nota: Solamente es necesario uno de estos elementos para definir una creación de rangos categórica. Ejemplo Describir una creación de rangos categórica: <binning name="Gender-1"> <categorical> <categories> <category name="male" levelname="unnamed node"> <category name="1" levelname="base categories" value="1"/> </category> <category name="female"> <category name="2" value="2"/> </category> </categories> </categorical> </binning> 364 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner categories Requerido Valor Descripción category elementos Una categoría en la jerarquía Ejemplo Describir la jerarquía categórica: <binning name="Gender-1"> <categorical> <categories> <category name="male" levelname="unnamed node"> <category name="1" levelname="base categories" value="1"/> </category> <category name="female"> <category name="2" value="2"/> </category> </categories> </categorical> </binning> category Requerido Valor Descripción name atributo de secuencia Nombre de la categoría value numérico, fecha o atributo de la secuencia Valor de esta categoría category elementos Descripción de una subcategoría Opcional Valor Descripción levelname atributo de secuencia Nombre del nivel de la jerarquía categórica, necesario solamente en la primera categoría de cada conjunto Nota: • Un elemento category tiene un valor de value o bien un elemento de category. • Todas las categorías deben recurrir a la misma profundidad. Ejemplos Describa el mapeo de categorías entre el valor del campo y la etiqueta: <category name="female"> <category name="1" value="1"/> </category> Guía de referencia del comando de creación de datos y TML 365 selectn Describa la agrupación en categorías de varios valores de campo en una sola etiqueta: <category name="InArrears"> <category name="2" value="2"/> <category name="6" value="6"/> <category name="14" value="14"/> <category name="15" value="15"/> <category name="18" value="18"/> <category name="25" value="25"/> </category> selectn Requerido Valor Descripción n atributo del entero Cantidad de categorías por crear Opcional Valor Descripción mincatsize atributo del entero Cantidad mínima de registros en cada categoría Requerido Valor Descripción maplocation elemento de archivo Ubicación del archivo de mapa geographic Ejemplo Agregar una creación de rangos de campos geográficos al campo StateCode: <geographic> <maplocation>/home/data/maps/us.mif</maplocation> </geographic> minendparam Opcional Valor Descripción type consultar fin estilo de rangos Tipo de fin del estilo de rangos boundary elemento Valor fijo de fin de estilo de rangos Ejemplo Describe rangos con el fin más bajo del estilo de rangos en el valor 18 : <binning name="Age-1"> <numeric targetnbins="10" style="equalwidth"> <minendparam type="fixed"> <boundary falls="right">18.0</boundary> 366 Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner </minendparam> </numeric> </binning> maxendparam Opcional Valor Descripción type consultar fin estilo de rangos Tipo de fin del estilo de rangos boundary elemento Valor fijo de fin de estilo de rangos Ejemplo Describe rangos con el fin más alto del estilo de rangos establecido automáticamente por Portrait Miner: <binning name="Age-1"> <numeric targetnbins="10" style="equalpopulation"> <maxendparam type="auto"/> </numeric> </binning> boundaries Opcional Valor Descripción endbins consultar fin de estilo de rangos Qué fines de estilo de rangos están habilitados boundary elementos Definición del límite de rangos Ejemplo Definir los límites de rangos definidos por el usuario: <binning name="Age-1"> <numeric style="userdefined"> <boundaries endbins="both"> <boundary falls="right">20.0</boundary> <boundary falls="right">30.0</boundary> <boundary falls="right">40.0</boundary> </boundaries> </numeric> </binning> boundary Requerido Valor Descripción content numérico o fecha Valor del límite Guía de referencia del comando de creación de datos y TML 367 valores de atributo Opcional Valor Descripción type consultar fin estilo de rangos Tipo de límite falls consultar inclusión de límites El límite es inclusivo o exclusivo Nota: Los valores de fecha deben suministrarse de manera estándar, con el formato AAAA-MM-DDTHH:MM:SSZ. Ejemplo Definir el límite que incluye el valor 20: <boundary falls="right">20.0</boundary> Definir el límite que no incluye el valor 20: <boundary falls="left">30.0</boundary> Definir un límite de fecha: <boundary>1992-03-01T00:00:00Z</boundary> valores de atributo 368 Nombre Valores nullhandling nomention | include | include_only | exclude | selected | deselected status selected | deselected otherstatus selected | deselected field type integer | real | string | date | unknown | numeric end bin style none | auto | fixed bin style equalpopulation | equalwidth | userdefined end bins none | both | high | low boundary inclusion izquierda | derecha binning display equalwidth | compactends date period auto | hora | minuto | segundo | día | semana | mes | cuatrimestre | año | década | siglo date reference auto | minend | maxend Portrait Miner 7.1 Capítulo 28: XML en Portrait Miner Nombre Valores measure context aggregation | statistic | tracker combining function unused | mean | meanlessstddev | meanlesssqrtstddev | min model types risk | response | churn | satisfaction | dissatisfaction Guía de referencia del comando de creación de datos y TML 369 Índice (data-build command) 106 * (operador FDL) 195 %, mod (operador FDL) 195 A Abrir conectividad de base de datos (ODBC) 32 crear o modificar con qsdbaccess 32 abs (función FDL) 278 acerca de diagramas de ferrocarriles 148 Acerca del Asistente de scorecard 118 ActionROI (función FDL) 306 ActionROIAnnualized (función FDL) 307 addcenturies, addcenturiescountbackwards (funciones FDL) 223 adddays (función FDL) 224 addhours (función FDL) 224 addminutes (función FDL) 225 addmonths, addmonthscountbackwards (funciones FDL) 226 addseconds (función FDL) 228 addweeks (función FDL) 229 addyears, addyearscountbackwards (funciones FDL) 230 adición 195 operador FDL 195 agregación 66 utilizando qsmeasure 66 agregación de registros 66 utilizando qsmeasure 66 agregación de un campo 152 en un archivo de agregaciones TML 152 análisis de la cesta de mercado mediante qsruleminer 129 analizar un documento QMML mediante qsqmmledit 134 and (operador FDL) 198 any (función de agregación) 162, 165 en mediciones y derivaciones 162 archivo de descripción de datos planos 40, 137 creación a partir de archivo plano mediante qsgenfdd 40 crear elementos desde QMML mediante qslt 137 archivo de enfoque 94, 95, 96, 113 copiar mediante qscopy (copia independiente) 94 copiar mediante qslink (copia enlazada) 95 eliminación con qsremove 96 mover/renombrar con qsmove 95 ver tamaños de archivo y dependencias mediante qsinfo 113 archivo de texto 40, 42 creación de metadata mediante qsgenfdd 40 importación utilizando qsimportflat 42 archivo plano 40, 42, 44 creación a partir de un enfoque mediante qsexportflat 44 creación de metadata mediante qsgenfdd 40 importación utilizando qsimportflat 42 argumentos de función (FDL) 192 asignación de un valor a una variable 190 en FDL 190 asignación de variables (FDL) 190 atributos de funciones (FDL) 194 auditar un enfoque 102 con enfoque 102 automatización de creaciones de datos 28 utilizando qsbuild 28 B bin (función FDL) 326 Boolean (creación de rangos) 327 borrar un archivo de enfoque 96 mediante qsremove 96 búsqueda 318 de valores en una tabla de referencias 318 búsqueda de tabla de referencia 318 C cadena 218, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 265 buscar subcadenas utilizando FDL 255 buscar una cadena al final utilizando FDL 254 buscar una cadena en el inicio utilizando FDL 260 codificación soundex 259 convertir un campo a 218 eliminar espacios en blanco con FDL 265 extracción de una cadena de la posición de inicio o final utilizando FDL 263 extraer una subcadena de acuerdo a la posición y longitud utilizando FDL 257 extraer una subcadena final con FDL 258 extraer una subcadena inicial utilizando FDL 256 largo 261 substitute 262 cambiar el nombre de un archivo de enfoque 95 mediante qsmove 95 cambiar el nombre de un campo 75 mediante qsrenamefields 75 campo 63, 152 agregación en un archivo de agregaciones TML 152 derivación en una archivo de derivaciones, rastreos, selecciones o agregaciones TML 152 derivar mediante qsderive 63 campo de marca 212 crear desde una selección 212 campos 75 renombrar mediante qsrenamefields 75 ceil (función FDL) 278 clamp (función FDL) 208 clase de carácter 268 en una expresión regular en FDL 268 clasificar registros en un enfoque 62 utilizando qssort 62 cláusula default (TML) 154 cláusula where (TML) 154 coincidencia de cadena 268 en FDL 268 coincidencia de patrones 268 en FDL 268 comandos de creación de datos 16, 21 acerca de 16 opciones estándar de la línea de comandos 21 comandos de creación de datos de Portrait Miner 16, 21 acerca de 16 opciones estándar de la línea de comandos 21 combinación de enfoques 90 mediante qsmerge 90 372 combinar registros 90 mediante qsmerge 90 comentarios 186 en FDL 186 compatibilidad 185 de tipos de datos en FDL 185 compatibilidad de tipos 185 en FDL 185 compatibilidad de tipos de datos 185 en FDL 185 compilar un documento QMML mediante qsqmmledit 134 concat (función FDL) 254 cond (función FDL) 208 conexión con base de datos 32 crear o modificar con qsdbaccess 32 Conexión de base de datos del usuario 32 crear o modificar con qsdbaccess 32 confintlower (función de agregación) 162, 165 en mediciones y derivaciones 162 confintupper (función de agregación) 162, 166 en mediciones y derivaciones 162 conjunto de datos de Excel 48, 50, 107 creación a partir de un enfoque mediante qsexportstat 50 descripción mediante qsdescribestat 107 Importación mediante qsimportstat 48 conjunto de datos SAS 48, 50, 107 creación a partir de un enfoque mediante qsexportstat 50 descripción mediante qsdescribestat 107 importación mediante qsimportstat 48 conjunto de datos SPSS 48, 50, 107 creación de un mediante qsexportstat 50 Descripción mediante qsdescribestat 107 importación mediante qsimportstat 48 conjunto de reglas 134 agregar o eliminar elementos de un documento QMML mediante qsqmmledit 134 conversión de tipos de datos 186 en FDL 186 convertir un archivo de metadata 140 mediante qsqsfmtosas 140 convertir un archivo QMML 139 mediante qsqmml2sas 139 mediante qsqmml2sql 139 convertir un campo 216, 217, 218 a entero 217 a real 217 a una cadena 218 a una fecha 216 copia enlazada de un archivo de enfoque 95 mediante qslink 95 Portrait Miner 7.1 copiar metadata de enfoque 82 mediante qsupdate 82 copiar un archivo de enfoque 94, 95 mediante qscopy (copia independiente) 94 mediante qslink (copia enlazada) 95 cos (función FDL) 279 count (función de agregación) 162, 167 en mediciones y derivaciones 162 countcenturies (función FDL) 231 countdays (función FDL) 231 counthours (función FDL) 232 countminutes (función FDL) 233 countnonnull/countnonnulls (función de agregación) 162, 167 en mediciones y derivaciones 162 countnull/countnulls (función de agregación) 162, 168 en mediciones y derivaciones 162 countseconds (función FDL) 234 countunique (función de agregación) 162, 169 en mediciones y derivaciones 162 countuniquenonnull (función de agregación) 162, 169 en mediciones y derivaciones 162 countweeks (función FDL) 235 countwholecenturies, countwholecenturiesbackwards (funciones FDL) 236 countwholedays (función FDL) 237 countwholehours (función FDL) 238 countwholeminutes (función FDL) 238 countwholemonths, countwholemonthsbackwards (función FDL) 239 countwholeseconds (función FDL) 241 countwholeweeks (función FDL) 242 countwholeyears, countwholeyearsbackwards (funciones FDL) 243 countyears (función FDL) 244 creación de 33 enfoque a partir de una tabla de base de datos utilizando qsimportdb 33 crear reglas de asociación mediante qsruleminer 129 crear un cuadro de mando 119 mediante qsscorecardwizard (copia vinculada) 119 crear un enfoque 52 a partir de datos en otro enfoque mediante qsimportfocus 52 cuadro de mando 109, 126 cómo crear una foto de modelo con qsscsnapshot 109 creación mediante qsscorecard 126 D datos booleanos 185 en FDL 185 datos de texto 184 en FDL 184 datos de tiempo 184 en FDL 184 day (función FDL) 245 DayFrom (creación de rangos) 328 DayMultipleFrom (creación de rangos) 328 DayMultipleNumBins (creación de rangos) 329 DayMultiplePrePost (creación de rangos) 330 DayMultipleTo (creación de rangos) 331 DayMultipleWidth (creación de rangos) 332 dayofweek (función FDL) 245 DayPrePost (creación de rangos) 333 DayRange (creación de rangos) 334 DayTo (creación de rangos) 335 dblookup (función FDL) 318 deciles 177 en FDL 177 definición de parámetros de las creaciones de datos 28 con qsbuild 28 definiciones de función (FDL) 192 delimitadores 270 en una expresión regular de FDL 270 dependencias entre enfoques 113 ver mediante qsinfo 113 derivación de un campo 152 en un archivo de derivaciones, rastreos, selecciones o agregaciones TML 152 derivar 70 un campo mediante qstrack 70 derivar un campo 63, 70 mediante qsderive 63 mediante qstrack 70 desigualdad 196 operador FDL 196 desviación estándar de un campo 178 distribución binomial 300 distribución de Poisson 303 distribución exponencial 301 distribución gamma 302 distribución normal 302 div (operador FDL) 195 división 195 operador FDL 195 documento QMML 134, 137 editar o compilar elementos mediante qsqmmledit 134 transformar elementos mediante qslt 137 visualizar elementos mediante qsqmmlview 134 Guía de referencia del comando de creación de datos y TML 373 duplicar registros 90 eliminar elementos mediante qsmerge 90 E editar un documento QMML mediante qsqmmledit 134 eliminar un archivo de enfoque 96 mediante qsremove 96 endswith (función FDL) 254 enfoque 16, 42, 44, 48, 62, 90 clasificar registros utilizando qssort 62 creación a partir de un archivo plano utilizando qsimportflat 42 eliminar registros duplicados mediante qsmerge 90 enfoque partir de un archivo SAS u otro conjunto de datos creado por terceros mediante qsimportstat 48 exportación a un archivo plano mediante qsexportflat 44 solo lectura 16 enfoque de plantilla 82 en qsupdate 82 enfoque de solo lectura 16 entero 217 convertir un campo a 217 EqualRange (creación de rangos) 336 EqualRangeWidth (creación de rangos) 337 espacio en blanco 265 eliminar con FDL 265 estadística 158 evaluación de un archivo de estadística TML 158 estadística de enfoque 158 evaluación en un archivo de estadísticas TML 158 evaluación condicional en FDL 187, 208, 209 uso de expresiones if y case 187 uso de la función cond 208 uso de la función iff 209 exp (función FDL) 279 exportación 50, 78 de comentarios a un archivo XML a partir de un enfoque 78 de metadata de un enfoque a un archivo XML 78 de metadata desde un enfoque hacia un archivo XML 78 de un enfoque a un archivo SAS u otro conjunto de datos creado por terceros mediante qsexportstat 50 exportación de datos 50 a un archivo SAS u otro conjunto de datos creado por terceros mediante qsexportstat 50 374 exportar datos 37, 38, 44 a un archivo plano mediante qsexportflat 44 a una tabla de base de datos utilizando qsdbinsert 37 a una tabla de base de datos utilizando qsdbupdate 38 exportar metadata de un enfoque a un archivo XML 78 expresión aritmética 186 en FDL 186 expresión básica 186 en FDL 186 expresión case 189 en FDL 189 expresión case (FDL) 189 expresión if 188 en FDL 188 expresión if (FDL) 188 expresión lógica 186 en FDL 186 expresión regular 268, 272, 273, 274 composición 268 probando una cadena para encontrar una coincidencia 272 reemplazar la primera subcadena que coincide 274 reemplazo de todas las subcadenas que coinciden 273 expresión, lista de expresiones 186 en FDL 186 extracción de secuencias mediante qsruleminer 129 extraer de un archivo de archivo mediante qsunzip 98 F FDL 137, 182, 184, 186, 187, 190, 192, 195, 196, 198, 199, 206, 268 acerca de 182 coincidencia de cadena 268 expresión, lista de expresiones 186 expresiones if y case 187 funciones 192, 199 definidas por el usuario 192 incorporadas 199 operadores 195, 196, 198 aritméticos 195 lógicos 198 relacionales 196 palabras reservadas 206 prioridad 199 de operadores 199 tipos de datos 184 Portrait Miner 7.1 FDL (continuado) transformar elementos desde o hacia QMML mediante qslt 137 variables 190 fecha 216 convertir un campo a 216 Field Derivation Language 182 consulte FDL 182 filtrado de registros 154 en un archivo de agregaciones TML 154 find (función FDL) 255 first (función de agregación) 162, 170 en mediciones y derivaciones 162 floor (función FDL) 280 focus!describing using qsdescribe qsdescribe 106 formato de fecha 55 Para archivos planos y expresiones FDL 55 Foto de modelo 108 descomprimir con qshtmlunpack 108 función 186, 192, 199 en FDL 186, 199 aplicación 186 incorporada 199 en FDL!defining 192 funciones de agregación 162 para usar en mediciones y derivaciones 162 funciones de división 156 para desglosar agregaciones 156 G gmt2edt (función FDL) 246 guardar un archivo de enfoque 97 mediante qsarchive 97 H hour (función FDL) 246 I identificador 186 en FDL 186 identificador estadístico 186 en FDL 186 iff (función FDL) 209 ifnull (función FDL) 210 igualdad 196 operador FDL 196 importación 78 de comentarios a un enfoque desde un archivo XML 78 importación (continuado) de metadata a un enfoque a partir de un archivo XML 78 de metadata a un enfoque desde un archivo XML 78 importación de datos 42, 48 a partir de un archivo plano utilizando qsimportflat 42 a partir de un archivo SAS u otro conjunto de datos creado por terceros mediante qsimportstat 48 importación de metadata desde un archivo XML a un enfoque 78 importar datos 33, 52 de un enfoque existente mediante qsimportfocus 52 de una tabla de base de datos utilizando qsimportdb 33 importar metadata de un enfoque a otro 82 mediante qsupdate 82 inicialización de una variable 190 en FDL 190 inicialización y asignación de variables 190 en FDL 190 instrucción create (TML) 152 instrucción de calcular (TML) 158 instrucción temporary (TML) 152 isnull (función FDL) 211 isselected (función FDL) 212 J jerarquía de rangos categóricos 142 crear un mapa de categorías mediante qsmapgen 142 L largo de una cadena 261 last (función de agregación) 162, 171 en mediciones y derivaciones 162 left (función FDL) 256 letra 264, 265 mayúscula 265 convertir una cadena a 265 minúscula 264 convertir una cadena a 264 letra mayúscula 265 convertir una cadena a 265 literal de cadena 186 en FDL 186 literal de fecha 186 en FDL 186 Guía de referencia del comando de creación de datos y TML 375 literal numérico 186 en FDL 186 log (función FDL) 280 log10 (función FDL) 281 logbase (función FDL) 281 M magnitud de un número 278 mapa de categorías 142 crear una jerarquía de rangos categóricos mediante qsmapgen 142 match (función FDL) 272 max (función de agregación) 162 en mediciones y derivaciones 162 max (función de agregación). 171 max, maxnonnull (funciones FDL multi-argument). 282 mayor a (o igual a) 196 operadores FDL 196 mean (función de agregación) 162, 172 en mediciones y derivaciones 162 mean, meannonnull ( funciones FDL multi-argument) 283 median (función de agregación) 162, 173 en mediciones y derivaciones 162 medición 66 utilizando qsmeasure 66 medición de transacciones 66 utilizando qsmeasure 66 member (función FDL) 319 menor a (o igual a) 196 operadores FDL 196 menos 195 operador FDL 195 metadata 40, 82 copiar de un enfoque a otro mediante qsupdate 82 creación de metadata de archivo plano mediante qsgenfdd 40 mid (función FDL) 257 min (función de agregación) 162, 173 en mediciones y derivaciones 162 min, minnonnull (funciones FDL multi-argument) 283 minúsculas 264 convertir una cadena a 264 minute (función FDL) 247 mod, % (operador FDL) 195 mode (función de agregación) 162, 174 en mediciones y derivaciones 162 modelo 109 cómo crear una foto de modelo con qsdtsnapshot o qsscsnapshot 109 376 moderatio (función de agregación) 162, 175 en mediciones y derivaciones 162 month (función FDL) 248 MonthFrom (creación de rangos) 328 MonthMultipleFrom (creación de rangos) 328 MonthMultipleNumBins (creación de rangos) 329 MonthMultiplePrePost (creación de rangos) 330 MonthMultipleTo (creación de rangos) 331 MonthMultipleWidth (creación de rangos) 332 MonthPrePost (creación de rangos) 333 MonthRange (creación de rangos) 334 MonthTo (creación de rangos) 335 mover un archivo de enfoque 95 mediante qsmove 95 muestreo 292, 293, 294, 295, 296, 297 bidireccional estratificado 296 partición 293 en subpoblaciones de tamaño aproximadamente igual 293 prueba/capacitación 292, 297 mediante el uso de testTrainSplit 297 uso de numericTestTrainSplit 292 prueba/capacitación/validación 292, 297 mediante el uso de numericTestTrainValidateSplit 292 mediante el uso de testTrainValidateSplit 297 selección de un número exacto de registros 294 selección de un porcentaje exacto de registros 295 muestreo bidireccional estratificado 296 multiplicación 195 operador FDL 195 N NegativeNonNegative (creación de rangos) 337 normalizar valores de campo 284 normalize (función FDL) 284 not (operador FDL) 198 now (función FDL) 248 numericTestTrainSplit (función FDL) 292 numericTestTrainValidateSplit (función FDL) 292 número aleatorio 300, 301, 302, 303, 304 con distribución binomial 300 con distribución de Poisson 303 con distribución exponencial 301 con distribución gamma 302 con distribución normal 302 con distribución uniforme en un intervalo 304 simula tirar una moneda al aire 301 número aleatorios 300 en FDL 300 Portrait Miner 7.1 número de índice 177, 326 para un rango 326 para un segmento de tabulación cruzada 177 nvl (función FDL) 210 O OfferROI (función FDL) 308 OfferROIAnnualized (función FDL) 309 operadores 195, 196, 198, 270 aritméticos 195 en FDL 195 en una expresión regular en FDL 270 lógicos 198 en FDL 198 relacionales 196 en FDL 196 operadores aritméticos 195 en FDL 195 operadores lógicos 198 en FDL 198 operadores relacionales 196 en FDL 196 or (operador FDL) 198 P palabras reservadas 149, 206 FDL 206 TML 149 percentage (función de agregación) 162, 175 en derivaciones 162 percentagerate (función de agregación) 162, 176 en derivaciones 162 Perfil y Auditoría 108 descomprimir con qshtmlunpack 108 plan de creación de datos 28 con qsbuild 28 por cláusula (TML) 156 pow (función FDL) 285 PreDuringPost (creación de rangos) 338 PrePost (creación de rangos) 339 prioridad de operadores 199 en FDL 199 probar la pertenencia a un conjunto 319 product, productnonnull (funciones FDL) 285 promedio 172, 283 de una lista de números 283 de valores en un campo 172 prueba/capacitación 292, 297 mediante el uso de numericTestTrainValidateSplit 292 mediante el uso de testTrainSplit 297 prueba/capacitación (continuado) mediante el uso de testTrainValidateSplit 297 uso de numericTestTrainSplit 292 Q qsarchive (comando de creación de datos) 97, 98 qsaudit 102 crear un Perfil y Auditoría con qsaudit 102 qsaudit (comando de creación de datos) 102 qsbuild (comando de creación de datos) 28 qscopy (comando de creación de datos) 94 qsdbaccess (comando de creación de datos) 32 qsdbcreatetable 35 qsdbinsert 37 qsdbupdate 38 qsdecisiontree (comando de creación de datos) 125 qsderive (comando de creación de datos) 63 qsdescribelicense (comando de creación de datos) 114 qsdescribestat (comando de creación de datos) 107 qsdtsnapshot (comando de creación de datos) 109 qsexportflat 44 qsexportmetadata (comando de creación de datos) 78 qsexportstat (comando de creación de datos) 50 qsgenfdd 40 qshtmlunpack (comando de creación de datos) 108 qsimportdb 33 qsimportflat 42 qsimportfocus 52 qsimportmetadata (comando de creación de datos) 78 qsimportstat (comando de creación de datos) 48 qsinfo (comando de creación de datos) 113 qsjoin (comando de creación de datos) 86 qslink (comando de creación de datos) 95 qslt (comando de creación de datos) 137 qsmapgen (comando de creación de datos) 142 qsmeasure (comando de creación de datos) 66 qsmerge (comando de creación de datos) 90 qsmove (comando de creación de datos) 95 qsqmml2sas (comando de creación de datos) 139 qsqmmledit (comando de creación de datos) 134 qsqmmltosql (comando de creación de datos) 139 qsqmmlview (comando de creación de datos) 134 qsqsfmtosas (comando de creación de datos) 140 qsremove (comando de creación de datos) 96 qsruleminer (comando de creación de datos) 129 qsscorecard (comando de creación de datos) 126 qsscorecardwizard (comando de creación de datos) 119 qsscsnapshot (comando de creación de datos) 109 Guía de referencia del comando de creación de datos y TML 377 qsselect (comando de creación de datos) 73 qssettings (comando de creación de datos) 102 qssort (comando de creación de datos) 62 qstrack (comando de construcción de datos) 70 qsupdate (comando de creación de datos) 82 qsxt (comando de creación de datos) 112 R raíz cuadrada de un número 288 rango de carácter 268 en una expresión regular en FDL 268 rangos 156 para desglosar agregaciones 156 rankOrder (función FDL) 321 rankOrderApprox (función FDL) 321 rankOrderApproxMean (función FDL) 322 rankOrderMean (función FDL) 322 rastrear cambios de estado 70 mediante qstrack 70 rastreo de cambio de estado 70 mediante qstrack 70 real 217 convertir un campo a 217 realizar un perfil de un enfoque 102 con qsaudit 102 redondear a enteros 278 redondear hacia arriba 278 redondear a un entero 286 redondeo hasta el entero más cercano 286 redondear un entero 280 redondear hacia abajo 280 referencia inversa 270 en una expresión regular en FDL 270 regla 134 agregar elementos a un documento QMML mediante qsqmmledit 134 relación 186 en FDL 186 renombrar un archivo de enfoque 95 mediante qsmove 95 replace (función FDL) 212 replaceall (función FDL) 273 replacefirst (función FDL) 274 resto 195 operador FDL 195 restricción de un numero a un intervalo 208 RetentionActionROI (función FDL) 310 RetentionActionROIAnnualized (función FDL) 311 RetentionOfferROI (función FDL) 313 RetentionOfferROIAnnualized (función FDL) 314 retorno de la inversión 308 con OfferROI 308 378 right (función FDL 258 rndBinomial (función FDL) 300 rndBool (función FDL) 301 rndExp (función FDL) 301 rndGamma (función FDL) 302 rndNormal (función FDL) 302 rndPoisson (función FDL) 303 rndUniform (función FDL) 304 ROI 306, 307, 309, 310, 311, 313, 314 con ActionROI 306 con ActionROIAnnualized 307 con OfferROIAnnualized 309 con RetentionActionROI 310 con RetentionActionROIAnnualized 311 con RetentionOfferROI 313 con RetentionOfferROIAnnualized 314 round (función FDL) 286 rownum (función FDL) 323 S sampleEqualSize (función FDL) 293 sampleExactNumber (función FDL) 294 sampleExactPercentage (Función FDL) 295 sampleStratified (Función FDL) 296 second (función FDL) 249 segindex (función de agregación) 162, 177 en derivaciones 162 seguimiento de dependencia en creaciones de datos 28 con qsbuild 28 selección 212 crear un campo de marca 212 selección de registros 73 mediante qsselect 73 seleccionar registros 73 mediante qsselect 73 semilla 300 para generación de números aleatorios en FDL 300 sobre 300 sgn (función FDL) 287 Sign (binning) 340 significance (función de agregación) 162, 177 en derivaciones 162 signum (signo) de un número 287 sin (función FDL) 287 soundex (función FDL) 259 sqrt (función FDL) 288 startswith (función FDL) 260 stdev (función de agregación) 162, 178 en mediciones y derivaciones 162 strlen (función FDL) 261 Portrait Miner 7.1 strmember (función FDL) 261 substitute (función FDL) 262 substr (función FDL) 263 sum (función de agregación) 162, 179 en mediciones y derivaciones 162 sum, sumnonnull (funciones FDL multi-argument) 288 sustracción 195 operador FDL 195 T tabla de base de datos 33, 35, 37, 38 actualizar la base de datos utilizando qsdbupdate 38 crear con qsdbcreatetable 35 importar utilizando qsimportdb 33 insertar datos utilizando qsdbinsert 37 tabulación cruzada 112 crear elementos aplicando una especificación mediante qsxt 112 tan (función FDL) 289 testTrainSplit (función FDL) 297 testTrainValidateSplit (función FDL) 297 texto 254, 255, 256, 257, 258, 260, 263, 265 buscar una cadena al final utilizando FDL 254 buscar una cadena en el inicio utilizando FDL 260 buscar subcadenas utilizando FDL 255 eliminar espacios en blanco con FDL 265 extraer una cadena de la posición de inicio y final utilizando FDL 263 extraer una subcadena de acuerdo a la posición y longitud utilizando FDL 257 extraer una subcadena final con FDL 258 extraer una subcadena inicial utilizando FDL 256 tipo date 184 en FDL 184 tipo entero 184 en FDL 184 tipo real 184 en FDL 184 tipo smallinteger 184 en FDL 184 tipo string 184 en FDL 184 tipos de datos 184 en FDL 184 tipos de datos numéricos 184 en FDL 184 TML 148, 149, 162 acerca de 148 funciones de agregación 162 palabras reservadas 149 todate (función FDL) 216 today (función FDL) 249 tointeger (función FDL) 217 tolower (función FDL) 264 toreal (función FDL) 217 tostring (función FDL) 218 toupper (función FDL) 265 Transaction Measurement Language 148 consulte TML 148 trim (función FDL) 265 U unión de enfoques 86 mediante qsjoin 86 unir cadenas 254 unir campos 86 mediante qsjoin 86 V valor absoluto de un número 278 valor literal 186 en FDL 186 valor null 184, 210, 211 en FDL 184 prueba para 211 reemplazo con ifnull o nvl 210 valores falso y verdadero 185 en FDL 185 variable global 190 en FDL 190 variable local 190 en FDL 190 variable state 190 en FDL 190 variance (función de agregación) 162, 179 en mediciones y derivaciones 162 W WeekFrom (creación de rangos) 328 WeekMultipleFrom (creación de rangos) 328 WeekMultipleNumBins (creación de rangos) 329 WeekMultiplePrePost (creación de rangos) 330 WeekMultipleTo (creación de rangos) 331 WeekMultipleWidth (creación de rangos) 332 weekofyear (función FDL) 250 WeekPrePost (creación de rangos) 333 WeekRange (creación de rangos) 334 WeekTo (creación de rangos) 335 Guía de referencia del comando de creación de datos y TML 379 X XML 137 cambiar el formato para obtener legibilidad 137 XML en Portrait Miner 342 Y year (función FDL) 251 380 YearFrom (creación de rangos) 328 YearMultipleFrom (creación de rangos) 328 YearMultipleNumBins (creación de rangos) 329 YearMultiplePrePost (creación de rangos) 330 YearMultipleTo (creación de rangos) 331 YearMultipleWidth (creación de rangos) 332 YearPrePost (creación de rangos) 333 YearRange (creación de rangos) 334 YearTo (creación de rangos) 335 Portrait Miner 7.1