Sobre comandos de compilação de dados do
Transcrição
Sobre comandos de compilação de dados do
Guia de referência de comando de compilação de dados e do TML Versão 7.0A © 2013 Pitney Bowes Software Inc. Todos os direitos reservados. Esse documento pode conter informações confidenciais ou protegidas por direitos autorais pertencentes à Pitney Bowes Inc. e/ou a seus subsidiários e suas empresas associadas. Portrait Software, o logotipo Portrait Software, Portrait e a marca Portrait Software’s Portrait são marcas comerciais da Portrait Software International Limited e não podem ser usadas nem exploradas de forma alguma sem prévia autorização expressa por escrito da Portrait Software International Limited. Reconhecimento de marcas comerciais Outros nomes do produto, nomes, marcas, logotipos e símbolos da empresa referenciados aqui podem ser marcas comerciais ou marcas comerciais registradas de seus proprietários registrados. Suporte Portrait Software Se precisar de ajuda com algo que não se encontre nesses documentos, visite a Base de Conhecimentos em nosso site da Web. http://support.portraitsoftware.com e siga os links para seu produto. Também é possível baixar outros documentos da Portrait Software a partir desse site. Se não tiver um nome de usuário e senha - ou se os esqueceu - contate-nos através de um dos canais abaixo. Se tiver algum problema com o uso, a instalação ou os documentos desse produto, contate-nos usando um dos seguintes métodos: E-mail: [email protected] Telefone • EUA/Canadá 1-800-335-3860 (número gratuito) • Resto do mundo +44 800 840 0001 Quando estiver reportando um problema, ajuda se nos disser: • • • • O nome do aplicativo de software As circunstâncias em que o problema apareceu Que mensagens de erro você viu (se tiver visto alguma) A versão do software que você estava usando Pitney Bowes Software Inc. June 13, 2013 Sumário Capítulo 1: Introdução..............................................................................................13 Visão Geral do Portrait Miner...........................................................................................14 Quem deve ler este manual..............................................................................................14 Capítulo 2: Comandos de compilação de dados do Portrait Miner.....................15 Sobre comandos de compilação de dados do Portrait Miner.......................................16 Opções padrão de linha de comando.............................................................................21 A opção de linha de comando -force..............................................................................24 A opção de linha de comando -macro............................................................................24 Capítulo 3: Gerenciar uma compilação de dados Portrait Miner.........................27 qsbuild................................................................................................................................28 Capítulo 4: Comandos para importar e exportar dados........................................31 qsdbaccess........................................................................................................................32 qsimportdb.........................................................................................................................33 qsdbcreatetable.................................................................................................................35 qsdbinsert..........................................................................................................................37 qsdbupdate........................................................................................................................38 qsgenfdd............................................................................................................................40 qsimportflat........................................................................................................................42 qsexportflat........................................................................................................................44 qsimportstat.......................................................................................................................48 qsexportstat.......................................................................................................................49 qsimportfocus....................................................................................................................51 Como o Portrait Miner importa tipos de banco de dados.............................................53 Importar para o Portrait Miner a partir de um banco de dados......................................53 Exportar do Portrait Miner para um banco de dados.....................................................55 Formatos de data...............................................................................................................55 Formatos de data padrão...............................................................................................55 Formatos de data personalizados..................................................................................55 Capítulo 5: Comandos para processar os focus...................................................61 qssort..................................................................................................................................62 qsderive..............................................................................................................................63 qsmeasure..........................................................................................................................66 qstrack,...............................................................................................................................70 qsselect..............................................................................................................................72 qsrenamefields..................................................................................................................74 qsexportmetadata..............................................................................................................77 qsimportmetadata.............................................................................................................78 qsupdate.............................................................................................................................82 Capítulo 6: Comandos para combinar os focus....................................................83 Sobre combinar focus.......................................................................................................84 qsjoin..................................................................................................................................84 qsmerge..............................................................................................................................87 Capítulo 7: Comandos para gerenciar o focus......................................................91 qscopy................................................................................................................................92 qslink..................................................................................................................................93 qsmove...............................................................................................................................93 qsremove............................................................................................................................94 qsarchive............................................................................................................................95 qsunzip...............................................................................................................................96 Capítulo 8: Comandos para produzir relatórios.....................................................99 qssettings.........................................................................................................................100 qsaudit..............................................................................................................................100 qsdescribe........................................................................................................................104 qsdescribestat.................................................................................................................105 qshtmlunpack..................................................................................................................106 qsdtsnapshot, qsscsnapshot.........................................................................................107 qsxt...................................................................................................................................110 qsinfo................................................................................................................................111 4 Portrait Miner 7.0A qsdescribelicense...........................................................................................................112 Capítulo 9: Comandos para compilar modelos....................................................115 Sobre o Assistente do Scorecard..................................................................................116 qsscorecardwizard..........................................................................................................117 qsdecisiontree.................................................................................................................123 qsscorecard.....................................................................................................................124 Sobre o Assistente de Regra de Associação...............................................................125 qsruleminer......................................................................................................................127 Capítulo 10: Comandos para trabalhar com arquivos QMML.............................131 qsqmmlview.....................................................................................................................132 qsqmmledit......................................................................................................................132 qslt....................................................................................................................................135 qsqmml2sas.....................................................................................................................137 qsqmml2sql......................................................................................................................137 qsqsfmtosas....................................................................................................................138 Capítulo 11: Outros comandos..............................................................................139 qsmapgen.........................................................................................................................140 Capítulo 12: Linguagem de Medição de Transação (TML)..................................145 Sobre Transaction Measurement Language.................................................................146 Sintaxe TML.....................................................................................................................146 Palavras reservadas em TML.........................................................................................147 Capítulo 13: Instruções TML..................................................................................149 Definição de campo: a instrução create.......................................................................150 Usando funções de agregação e as cláusulas where e default..................................152 Dividir agregações: a cláusula by.................................................................................154 Avaliação das estatísticas do focus: a instrução calculate........................................156 Capítulo 14: Funções de agregação......................................................................159 Funções de agregação para medições e derivações..................................................160 any....................................................................................................................................163 confintlower.....................................................................................................................163 Guia de referência de comando de compilação de dados e do TML 5 confintupper.....................................................................................................................164 count.................................................................................................................................165 countnonnull/countnonnulls..........................................................................................165 countnull/countnulls.......................................................................................................166 countunique.....................................................................................................................167 countuniquenonnull........................................................................................................167 first....................................................................................................................................168 last....................................................................................................................................169 max (um argumento).......................................................................................................169 mean (um argumento).....................................................................................................170 median..............................................................................................................................171 min (um argumento)........................................................................................................171 mode.................................................................................................................................172 moderatio.........................................................................................................................173 percentage.......................................................................................................................173 percentagerate.................................................................................................................174 segindex...........................................................................................................................175 significance......................................................................................................................175 stdev.................................................................................................................................176 sum (um argumento).......................................................................................................177 variance............................................................................................................................177 Capítulo 15: Linguagem de Campo Derivado (FDL)............................................179 Sobre Linguagem de Campo Derivado (FDL)...............................................................180 Capítulo 16: Sintaxe FDL........................................................................................181 Tipos de Dados................................................................................................................182 O valor nulo..................................................................................................................182 Dados booleanos.........................................................................................................183 Compatibilidade de tipo...............................................................................................183 Conversão de tipo........................................................................................................184 Expressões......................................................................................................................184 Expressões básicas.....................................................................................................184 Expressões Condicionais...............................................................................................185 A expressão if..............................................................................................................186 A expressão case.........................................................................................................187 Variáveis...........................................................................................................................188 Variáveis globais no Decision Studio...........................................................................189 6 Portrait Miner 7.0A Variáveis de estado em Transaction Measurement Language (TML).........................189 Funções definidas pelo usuário.....................................................................................190 Function attributes........................................................................................................192 Operadores aritméticos..................................................................................................193 Operadores relacionais...................................................................................................194 Operadores lógicos.........................................................................................................196 Precedência de operador................................................................................................197 Funções internas.............................................................................................................197 Palavras reservadas em FDL.........................................................................................204 Capítulo 17: Funções condicionais.......................................................................205 clamp................................................................................................................................206 cond..................................................................................................................................206 iff.......................................................................................................................................207 ifnull, nvl...........................................................................................................................208 isnull.................................................................................................................................209 isselected.........................................................................................................................210 replace..............................................................................................................................210 Capítulo 18: Funções de conversão de tipos de dados......................................213 todate................................................................................................................................214 tointeger...........................................................................................................................215 toreal.................................................................................................................................215 tostring.............................................................................................................................216 Capítulo 19: Funções para trabalhar com datas..................................................219 addcenturies, addcenturiescountbackwards...............................................................221 adddays............................................................................................................................222 addhours..........................................................................................................................223 addminutes......................................................................................................................223 addmonths, addmonthscountbackwards.....................................................................224 addseconds......................................................................................................................226 addweeks.........................................................................................................................227 addyears, addyearscountbackwards............................................................................228 countcenturies.................................................................................................................229 countdays.........................................................................................................................229 counthours.......................................................................................................................230 Guia de referência de comando de compilação de dados e do TML 7 countminutes...................................................................................................................231 countseconds..................................................................................................................232 countweeks......................................................................................................................233 countwholecenturies, countwholecenturiesbackwards..............................................234 countwholedays..............................................................................................................235 countwholehours.............................................................................................................236 countwholeminutes.........................................................................................................236 countwholemonths, countwholemonthsbackwards....................................................237 countwholeseconds........................................................................................................239 countwholeweeks............................................................................................................240 countwholeyears, countwholeyearsbackwards...........................................................241 countyears.......................................................................................................................242 day....................................................................................................................................243 dayofweek........................................................................................................................243 gmt2edt.............................................................................................................................244 hour...................................................................................................................................244 minute...............................................................................................................................245 month................................................................................................................................246 now...................................................................................................................................246 second..............................................................................................................................247 today.................................................................................................................................247 weekofyear.......................................................................................................................248 year...................................................................................................................................249 Capítulo 20: Funções para trabalhar com strings...............................................251 concat...............................................................................................................................252 endswith...........................................................................................................................252 find....................................................................................................................................253 left.....................................................................................................................................254 mid....................................................................................................................................255 right...................................................................................................................................256 soundex............................................................................................................................257 startswith..........................................................................................................................258 strlen.................................................................................................................................259 strmember........................................................................................................................259 substitute.........................................................................................................................260 substr................................................................................................................................261 tolower..............................................................................................................................262 8 Portrait Miner 7.0A toupper.............................................................................................................................263 trim....................................................................................................................................263 Capítulo 21: Expressões regulares e funções associadas.................................265 Expressões regulares.....................................................................................................266 Componentes básicos de uma expressão regular......................................................266 Referências inversas...................................................................................................268 Operadores de expressões regulares...........................................................................268 Operadores de repetição.............................................................................................269 O operador de concatenação......................................................................................269 O operador de alternância...........................................................................................270 match................................................................................................................................270 replaceall..........................................................................................................................271 replacefirst.......................................................................................................................272 Capítulo 22: Funções matemáticas e estatísticas...............................................275 abs....................................................................................................................................276 ceil.....................................................................................................................................276 cos....................................................................................................................................277 exp....................................................................................................................................277 floor...................................................................................................................................278 log.....................................................................................................................................278 log10.................................................................................................................................279 logbase.............................................................................................................................279 max (dois ou mais argumentos), maxnonnull..............................................................280 mean (dois ou mais argumentos), meannonnull..........................................................281 min (dois ou mais argumentos), minnonnull................................................................281 normalize..........................................................................................................................282 pow...................................................................................................................................283 product, productnonnull.................................................................................................283 round................................................................................................................................284 sgn....................................................................................................................................285 sin.....................................................................................................................................285 sqrt....................................................................................................................................286 sum (dois ou mais argumentos), sumnonnull..............................................................286 tan.....................................................................................................................................287 Guia de referência de comando de compilação de dados e do TML 9 Capítulo 23: Funções de amostragem de dados.................................................289 numericTestTrainSplit.....................................................................................................290 numericTestTrainValidateSplit.......................................................................................290 sampleEqualSize.............................................................................................................291 sampleExactNumber.......................................................................................................292 sampleExactPercentage.................................................................................................292 sampleStratified...............................................................................................................293 testTrainSplit....................................................................................................................294 testTrainValidateSplit......................................................................................................295 Capítulo 24: Funções de número aleatório..........................................................297 Sobre funções de números aleatórios em FDL............................................................298 rndBinomial......................................................................................................................298 rndBool.............................................................................................................................299 rndExp..............................................................................................................................299 rndGamma........................................................................................................................300 rndNormal........................................................................................................................300 rndPoisson.......................................................................................................................301 rndUniform.......................................................................................................................302 Capítulo 25: Funções de retorno de investimento...............................................303 ActionROI.........................................................................................................................304 ActionROIAnnualized......................................................................................................305 OfferROI............................................................................................................................306 OfferROIAnnualized........................................................................................................307 RetentionActionROI........................................................................................................308 RetentionActionROIAnnualized.....................................................................................310 RetentionOfferROI...........................................................................................................311 RetentionOfferROIAnnualized........................................................................................312 Capítulo 26: Funções diversas..............................................................................315 dblookup..........................................................................................................................316 member.............................................................................................................................317 rankOrder, rankOrderApprox.........................................................................................319 rankOrderMean, rankOrderApproxMean.......................................................................320 rownum.............................................................................................................................321 10 Portrait Miner 7.0A Capítulo 27: Binnings.............................................................................................323 bin.....................................................................................................................................324 Boolean............................................................................................................................325 DayFrom, WeekFrom, MonthFrom, YearFrom..............................................................326 DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom........326 DayMultipleNumBins,WeekMultipleNumBins,MonthMultipleNumBins,YearMultipleNumBins.327 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost.328 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo...........................329 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth....330 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost............................................331 DayRange, WeekRange, MonthRange, YearRange......................................................332 DayTo, WeekTo, MonthTo, YearTo..................................................................................333 EqualRange......................................................................................................................334 EqualRangeWidth............................................................................................................334 NegativeNonNegative......................................................................................................335 PreDuringPost.................................................................................................................336 PrePost.............................................................................................................................336 Sign...................................................................................................................................337 Capítulo 28: XML no Portrait Miner.......................................................................339 XML no Portrait Miner.....................................................................................................340 Especificações de metadados para qsimportmetadata..............................................341 metadada.....................................................................................................................341 focus.............................................................................................................................341 field nos metadados.....................................................................................................342 fdl.................................................................................................................................343 comment......................................................................................................................343 history...........................................................................................................................344 recordselection.............................................................................................................344 numeric........................................................................................................................345 date..............................................................................................................................345 categorical....................................................................................................................346 range............................................................................................................................347 select............................................................................................................................347 Especificação de agregação para qsmeasure..............................................................347 aggregations................................................................................................................347 field nas agregações....................................................................................................348 Guia de referência de comando de compilação de dados e do TML 11 Especificações de derivação para o qsderive..............................................................349 derivations....................................................................................................................349 field nas derivações.....................................................................................................349 Especificação de seleção para qsselect.......................................................................350 selections.....................................................................................................................350 field nas seleções.........................................................................................................350 Especificações da tabela de referência cruzada para qsxt.........................................351 crosstabset...................................................................................................................351 crosstab........................................................................................................................351 specification na tabela de referência cruzada..............................................................352 function.........................................................................................................................353 field na tabela de referência cruzada...........................................................................353 Especificação de mapeamento do campo do nome para qsrenamefields................353 mappingset...................................................................................................................353 map..............................................................................................................................354 Especificação da compilação da árvore de decisão para qsdecisiontree.................354 decisiontree..................................................................................................................354 specification na árvore de decisão...............................................................................355 splitconstraints.............................................................................................................356 testtrain........................................................................................................................356 Especificação da compilação do scorecard parna árvore de decisãoa qsscorecard.357 scorecard.....................................................................................................................357 specification no scorecard...........................................................................................357 Especificações de binning.............................................................................................358 binning..........................................................................................................................358 numeric........................................................................................................................359 date..............................................................................................................................360 categorical....................................................................................................................361 categories.....................................................................................................................362 category.......................................................................................................................363 selectn..........................................................................................................................363 geographic...................................................................................................................364 minendparam...............................................................................................................364 maxendparam..............................................................................................................364 boundaries...................................................................................................................365 boundary......................................................................................................................365 Valores de atributos........................................................................................................366 12 Portrait Miner 7.0A Capítulo Introdução Nesta seção: • Visão Geral do Portrait Miner . . . . . . . . . . . . . . . . . . . . . .14 • Quem deve ler este manual . . . . . . . . . . . . . . . . . . . . . . . .14 1 Visão Geral do Portrait Miner Visão Geral do Portrait Miner O Portrait Miner é uma solução analítica preditiva e poderosa que permite aos profissionais de customer insight e usuários empresariais terem uma imagem clara de seus clientes para que possuam um entendimento superior dos clientes, descobrindo áreas de oportunidade, atingindo uma segmentação ótima e prevendo comportamentos futuros. Preenchendo a lacuna entre as ferramentas padrão de Inteligência Empresarial com um escopo limitado para explorar dados e soluções para cálculos numéricos, que requerem programadores estatísticos para criar consultas e produzir modelos, o Portrait Customer Analytics é uma solução de próxima geração, projetada para uma facilidade de uso inédita – e um entendimento prático rápido. A solução usa a visualização de dados em 3D e automatização de modelagem rápida para descobrir relacionamentos de dados importantes e entregar resultados de propensão clicando em um botão, melhorando a precisão do modelo preditivo e aumentando a velocidade dos resultados analíticos. O Portrait Miner pode ser usado para prever comportamentos e tendências que têm impacto nos lucros, incluindo desistência de clientes, oportunidades de venda incrementada e venda cruzada, planejamento e segmentação de campanha, satisfação e lealdade do cliente e valor permanente do cliente. Quem deve ler este manual Esse manual é indicado para usuários do Portrait Miner que estão familiarizados com linha de comando e querem criar ou modificar a compilação de dados. Parte dele — em particular, o capítulo descrevendo comandos disponíveis para gerenciar focus — podem também ser de interesse aos administradores do Portrait Miner. Esse documento foi criado para referência e não é um tutorial. 14 Portrait Miner 7.0A Capítulo Comandos de compilação de dados do Portrait Miner Nesta seção: • Sobre comandos de compilação de dados do Portrait Miner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 • Opções padrão de linha de comando . . . . . . . . . . . . . . . .21 • A opção de linha de comando -force . . . . . . . . . . . . . . . .24 • A opção de linha de comando -macro . . . . . . . . . . . . . . .24 2 Sobre comandos de compilação de dados do Portrait Miner Sobre comandos de compilação de dados do Portrait Miner Os comandos de compilação de dados do Portrait Miner fornecem compilação de dados-chave do Portrait Miner, gerenciamento de dados e funcionalidade de relatório da linha de comando. Embora seja possível introduzir comandos individualmente para realizar tarefas únicas, a grande vantagem de usar comandos de compilação de dados é poder combiná-los em scripts do shell UNIX e arquivos em lotes do Windows para realizar construções de dados complexas. Para gerenciar construções de dados com vários passos interdependentes, também pode usar a ferramenta do Data Build Manager do Portrait Miner ou sua linha de comando equivalente, qsbuild. Usando um plano de compilação para expressar a sequência de passos necessários economiza tempo e minimiza o erro humano. Se for executada uma compilação de dados normal ou deixado o processo de implantação sem supervisão, talvez durante a noite, e algo sair errado (como ficar sem espaço no disco), provavelmente você vai querer reparar o problema e continuar de onde estava, em vez de começar tudo de novo. Da mesma forma, se as operações necessárias para compilações sucessivas se sobrepuserem a certa medida, você pode querer economizar tempo de processamento fazendo essas operações uma única vez. Usando o Data Build Manager ou qsbuild se torna fácil seguir as dependências entre operações e lembrar quais operações já foram realizadas. Cada comando de compilação de dados necessita de uns argumentos de linha de comando e pode aceitar argumentos opcionais específicos de comando, assim como opções padrão [consulte Opções padrão de linha de comando na página 21]. Na seção que descreve cada comando há uma sinopse do comando, que usa algumas noções sintáticas: • Itens entre colchetes não são literais. Por exemplo, onde se lê "<focus de origem>," deve-se introduzir o nome do arquivo de um focus existente. • Itens entre colchetes são opcionais. Por exemplo, onde se lê "[-overwrite]," é possível introduzir "-overwrite" ou nada. • Itens separados por barras verticais são alternativas: Deve-se escolher apenas um. Por exemplo, onde se lê "XML | HTML | Full," é possível introduzir "XML," "HTML," ou "Full." • Um item seguido por uma elipse pode ser repetido conforme necessário. Por exemplo, onde se lê <campo> [, <campo> ...], é possível introduzir Income (ignorando o item opcional), Income,Gender, Income,Gender,Age, etc. • Chaves {...} às vezes são usadas para delinear itens não opcionais. (O que conta como item com o objetivo de alternação e repetição, se prolonga para a barra vertical, colchete ou chave mais próxima.) Por exemplo, onde se lê -input <focus de origem> {,-input <focus de origem> ...}, é possível introduzir -input one.ftr -input two.ftr ou -input one.ftr -input two.ftr -input three.ftr e não somente -input one.ftr. Existem comandos de compilação de dados para importar e exportar dados, processar, juntar e gerenciar dados em focus e para reportar em focus e modelos. Comandos para importar e exportar dados 16 Portrait Miner 7.0A Capítulo 2: Comandos de compilação de dados do Portrait Miner Comando Objetivo qsdbaccess Criar, testar ou excluir uma Conexão do Banco de Dados do Usuário, para acessar o banco de dados. qsimportdb Importar dados de uma tabela de banco de dados ou do resultado de uma consulta de um banco de dados. qsdbcreatetable Criar uma tabela vazia no banco de dados baseado nos campos em um focus. qsdbinsert Inserir registros de um focus em uma tabela de banco de dados. qsdbupdate Atualizar registros existentes em um banco de dados usando dados de um focus. qsgenfdd Criar um arquivo de descrição de dados simples para dados em um arquivo de texto. qsimportflat Importar dados de um arquivo simples. qsexportflat Exportar dados para um arquivo simples. qsimportstat Importar dados de um arquivo SAS ou outro conjunto de dados de terceiros. qsexportstat Exportar dados de um arquivo SAS ou outro conjunto de dados de terceiros. qsimportfocus Importar dados (sem metadados) de um focus existente. Comandos para processar os focus Comando Objetivo qssort Classificar os registros em um focus. qsderive Derivar campos em um focus. qsmeasure Agregar registros em um focus para produzir um novo focus. qstrack Derivar campos em um focus usando derivações do rastreamento de estado. qsselect Adicionar uma seleção de registro a um focus. qsrenamefields Renomear campos em um focus. qsexportmetadata Exportar metadados de um focus. qsimportmetadata Importar metadados de um arquivo para um focus. qsupdate Copiar metadados de um focus para outro. Guia de referência de comando de compilação de dados e do TML 17 Sobre comandos de compilação de dados do Portrait Miner Comandos para combinar os focus Comando Objetivo qsjoin Adicionar campos de um ou mais focus secundários a um focus primário, combinando registros por meio de campos-chave. qsmerge Mesclar registros de um focus similar para criar um novo focus, mantendo os registros classificados por campos-chave. Comandos para gerenciar o focus Comando Objetivo qscopy Copiar um focus para criar um focus novo e independente. qslink Copiar um focus, partilhar dados subjacentes. qsmove Mover ou renomear um focus. qsremove Excluir focus. qsarchive Criar um arquivo compactado de focus ou pastas. qsunzip Extrair de um arquivo compactado. Comandos para produzir relatórios 18 Comando Objetivo qssettings Definir opções de formatação comuns para vários relatórios. qsaudit Produzir um Perfil e Auditoria de um focus. qsdescribe Exibir informação resumida sobre um focus. qsdescribestat Exibir informação resumida sobre um arquivo SAS ou outro conjunto de dados de terceiros. qshtmlunpack Descompactar um arquivo HTML ou XML produzido por qsaudit, qsdtsnapshot ou qsscsnapshot. qsdtsnapshot Produzir um Modelo Instantâneo de uma árvore de decisão. qsscsnapshot Produzir um Modelo Instantâneo de um scorecard. qsxt Aplicar uma especificação de uma tabela de referência cruzada a um focus para produzir uma nova tabela de referência cruzada. Portrait Miner 7.0A Capítulo 2: Comandos de compilação de dados do Portrait Miner Comando Objetivo qsinfo Exibir informação dos arquivos constituintes de um focus e seu relacionamento com outros focus. qsdescribelicense Exibir informação de uma licença Portrait Miner. Comandos para compilar modelos Comando Objetivo qsdecisiontree Aplicar uma especificação de uma árvore de decisão a um focus para produzir um novo relatório modelo da árvore de decisão. qsscorecard Aplicar uma especificação de scorecard a um focus para produzir um novo relatório modelo de scorecard. qsscorecardwizard Compilar um scorecard em um focus especificado usando um arquivo de parâmetros. Comandos para trabalhar com arquivos QMML Comando Objetivo qsqmmlview Mostrar os conteúdos do arquivo de regras QMML. qsqmmledit Modificar um arquivo de regras QMML. qslt Transformar um arquivo FDL, QMML ou XML genérico em um formato diferente. qsqmml2sas Converter um arquivo QMML em um arquivo SAS. qsqmml2sql Converter um arquivo QMML em um arquivo SQL. qsqsfmtosas Converter derivações de um arquivo metadados em um arquivo SAS. Outros comandos Comando Objetivo qsbuild Executar um plano de compilação. qsmapgen Criar um conjunto de mapas do Decision Studio para os binnings em um ou mais arquivos de hierarquia categórica. Devido à potencial interdependência dos focus, não se deve tentar copiar, mover, renomear ou excluir os focus usando utilitários padrão do sistema operacional. Em vez disso, deve-se usar sempre os comandos para gerenciar os focus listados acima (ou Portrait Miner). Guia de referência de comando de compilação de dados e do TML 19 Sobre comandos de compilação de dados do Portrait Miner Comandos de compilação de dados que geram arquivos, em geral, substituem qualquer arquivo existente com o mesmo nome. Atenção para não substituir focus dependentes de outros ou que tenham dependentes, isso poderá deixar esses focus inutilizáveis. Observação: • Para usar os comandos de compilação de dados, é necessário ter acesso à linha de comando para o Portrait Miner. Consulte administração do Portrait Miner para obter informações sobre como definir seu caminho de comando para usar comandos de compilação de dados (ou perguntar a seu administrador Portrait Miner). • Shells de comandos necessitam, normalmente, que os argumentos da linha de comando contendo certos caracteres sejam colocados entre aspas, em especial, espaços e pontuação especial (tal como aspas simples ou duplas, "<," ">," "*," "=," e "#"). Algumas opções assumem argumentos que são listas separadas por vírgulas, por exemplo, a opção -fields em vários comandos. Essa lista é somente um argumento de linha de comando, por isso, deve colocá-las entre aspas ou garantir que não há espaços após as vírgulas (ou em outro local na lista). • Ao usar a opção -verbose ou -logfile consulte Opções padrão de linha de comando na página 21], a saída de um comando de compilação de danos (na tela ou em um arquivo log, de acordo com a opção usada) é similar ao seguinte: 11:55:21: {P1/4/4Hm4096Pd2047Pi63Pw27Jm64Um-1Fs991Fh1784Fc0Fp0} O string críptico de caracteres codifica a informação sobre os recursos da memória e do processador usados pelo comando; se tiver problemas de desempenho com os comandos de compilação de dados, essa informação poderá ajudar o Suporte do Portrait Miner a resolver essa questão para você. • Os comandos de compilação de dados qssort, qsjoin e qsmerge exibem ou registram mensagens específicas de dados ao utilizar a opção -verbose ou -logfile. Isso pode ajudar a compreender exatamente como o comando atua em seus dados. • O estado de saída retornado por todos os comandos é zero se for bem-sucedido ou diferente de zero se falhar. Quando um comando falha, ele sempre gera uma mensagem de erro como abaixo: *** Error: <message> Mensagens de erro aparecem em erros padrão - e também em um arquivo log se usar a opção -logfile [consulte Opções padrão de linha de comando na página 21]. Os comandos também podem produzir mensagens da seguinte forma: *** Warning: <message> As mensagens de aviso aparecem no erro padrão ou em um arquivo log (mas não em ambos). • Se um comando falhar porque o focus é somente de leitura, copie o focus somente de leitura para uma nova localização usando qslink ou qscopy e execute o comando novamente. 20 Portrait Miner 7.0A Capítulo 2: Comandos de compilação de dados do Portrait Miner • Ao criar UDCs, use o comando qsdbaccess com o argumento -add. Como ele pede informações, não é apropriado usar essa forma de comando em um script do shell ou arquivo em lotes. • Por padrão, comandos de compilação de dados que lêem o focus usam o subfocus padrão, se houver, ou então o focus de nível superior ("raiz"). Pode substituir esse comportamento para um comando fornecido usando a opção comum-subfocus. • Muitos comandos de compilação de dados aceitam as opções -field , -xfield , -tag e -xtag para especificar listas de campos. Os campos podem ser especificados usando combinações -field e -xfield ou -tag e -xtag mas as opções de campo e tag não podem ser usadas em conjunto. Opções padrão de linha de comando Opções autônomas: Use uma das seguintes opções em vez dos argumentos normais do comando de compilação de dados: Opção Efeito -help Exibe texto de uso, incluindo um resumo de todas as opções de linha de comando válidas além das opções padrão. -helpall Exibe texto de uso, incluindo um resumo de todas a opções de linha de comando válidas. -version Exibe a versão do Portrait Miner e a informação de licença associada. Outras opções comuns a todos os comandos Opção Efeito -config <arquivo de preferências> Usa o arquivo de preferências especificado (consulte administração do Portrait Miner). As definições nesse arquivo substituem as definições dos arquivos gerais padrão do sistema e de preferências específicas do usuário. -email Ao completar o comando, envia uma mensagem de e-mail para o destinatário especificado nas preferências E-mail emailaddress (consulte o Guia de Administração do Portrait Miner). A mensagem de e-mail inclui um resumo do estado em formato HTML, tal como o gerado pela opção -statusfile. Guia de referência de comando de compilação de dados e do TML 21 Opções padrão de linha de comando Opção Efeito -logfile <arquivo de log> Grava informação detalhada do progresso com os tempos de operação e outras informações especificas dos comandos sobre execução, incluindo quaisquer avisos e mensagens de erro, em um arquivo especificado, substituindo qualquer arquivo com esse nome. Continua a exibir mensagens de erro em uma saída padrão. Essa opção implica a opção -verbose. -memory <número de megabytes> Usa, no máximo, a quantidade de memória especificada. O comando tentará se manter dentro dos limites, se possível, mas não acima desses limites. Em casos onde um comando requer mais memória do que a quantidade máxima, o comando falha. Essa opção substitui as definições da preferência do limite leve de memória de focus (consulte o Guia de Administração do Portrait Miner). -parallel <número de processadores> Usa o número especificado de processadores (se disponível), para operações que usem mais de um processador. Essa opção substitui as definições da preferência de paralelismo (consulte o Guia de Administração do Portrait Miner). -progress Exibe informação simples do progresso, como uma linha de caracteres . e +. -settings <arquivo de configurações> Use as definições no arquivo especificado para controlar a formatação numérica e de datas em um relatório gerado. Essa opção tem efeito somente em comandos criadores de relatórios, nomeadamente qsaudit, qsdtsnapshot e qsscsnapshot. No diretório de configuração especifico do usuário em um PC de cliente Portrait Miner, o Decision Studio cria um arquivo chamado settings.xml quando altera as definições por meio de Edit->View Preferences. É possível copiar esse arquivo para o servidor para usar com a opção -settings. Ou é possível criar um arquivo de definições no servidor usando o comando qssettings. Por padrão, o formato de data é europeu, o número de casas decimais é dois, zeros à direita não são retirados, não é usado nenhum separador de 22 Portrait Miner 7.0A Capítulo 2: Comandos de compilação de dados do Portrait Miner Opção Efeito milhares específico e o formato de hora usado é de 24 horas. -statusfile <arquivo de estado> Produz um resumo de estado de comando em formato HTML no arquivo de estado. Se usar a opção -email, a mensagem de e-mail de estado inclui um resumo similar. -verbose Exibe informação detalhada do progresso com tempos de operação e outras informações especificas de comando sobre a execução. Essa opção substitui a opção -progress. Observação: • Se for especificado o uso de mais de um processador, usando a opção -parallel ou a preferência correspondente, a memória disponível, conforme especificada usando a opção -memory ou a preferência correspondente, é compartilhada entre os processadores. • Informações específicas de comando sobre execução podem incluir, por exemplo: o número de registros introduzidos, retirados ou coincidentes; informações sobre conversões de tipos de dados de bancos de dados; ou códigos de diagnóstico de interesse a Suporte do Portrait Miner. Exemplos Exibe o texto de ajuda para qsremove: qsremove -help Dado o arquivo de preferências, audit.ini, contendo o seguinte: [Audits and Snapshots] imageheight = 200 barcolor = #FF0000 Use essas preferências para criar um Perfil e Auditoria com imagens de altura de 200 pixels e barras vermelhas: qsaudit -config audit.ini -input RetailCustApril.ftr Use 512 megabytes de memória quando criar um novo focus, RetailTransAprilSorted.ftr, classificando o focus RetailTransApril.ftr: qssort -memory 512 -output RetailTransAprilSorted.ftr -input RetailTransApril.ftr -keys CustomerID Use quatro processadores (e definições de memória padrão) ao criar um novo focus, RetailTransMaySorted.ftr, classificando o focus RetailTransMay.ftr: qssort -parallel 4 -output RetailTransMaySorted.ftr -input RetailTransMay.ftr -keys CustomerID Guia de referência de comando de compilação de dados e do TML 23 A opção de linha de comando -force A opção de linha de comando -force Esta opção se aplica a comandos para criar focus, nomeadamente: qscopy, qsderive, qsimportdb, qsimportflat, qsimportfocus, qsimportmetadata, qsimportstat, qsjoin, qslink, qsmeasure, qsmerge, qsrenamefields, qsselect, qssort, qstrack, qsupdate, qsscorecard, e qsdecisiontree. Opção Efeito -force Permite que um novo focus especificado usando a opção -output ou -to substitua um focus existente. Sem a opção -force, se o focus especificado por -output ou -to já existir, o comando não faz nada (exceto emitir um aviso). Observação: • A opção -force deve somente ser usada se absolutamente necessária, deve garantir que não precisa mais do focus que está a substituir ou qualquer outro focus que esteja ligado a ele [consulte qsinfo na página 111]. Na maior parte dos casos, seria melhor remover o focus original usando qsmove antes de usar o comando de compilação de dados para criar um novo focus. • A opção -force somente tem efeito em focus de saída explicitamente especificados. Se está usando um comando de compilação de dados para modificar um focus existente implicitamente, não precisa usar -force. Exemplos Criar um novo focus RetailTransAprilSorted.ftr, substituindo qualquer focus existente com o mesmo nome, contendo todos os registros do focus RetailTransApril.ftr, classificado pelo campo CustomerID: qssort -force -output RetailTransAprilSorted.ftr -input RetailTransApril.ftr -keys CustomerID A opção de linha de comando -macro Esta opção se aplica aos comandos: qsderive, qsmeasure, qstrack, e qsselect 24 Comando Objetivo -macro <nome>=<valor> Antes de efetuar uma análise de uma TML ou de um arquivo de entrada XML correspondente, Portrait Miner 7.0A Capítulo 2: Comandos de compilação de dados do Portrait Miner Comando Objetivo substitua todas as ocurrências de $<nome> pelo valor fornecido. É possível usar essa opção repetidamente, na mesma linha de comando, para especificar expansões para várias macros. -macro @<arquivo de macros> Realizar a substituição da macro no TML e arquivos de entrada XML correspondentes, lendo pares <nome>=<valor> de linhas sucessivas do arquivo de macros. O arquivo de macros também pode estar no formato XML. Observação: • Os nomes das macros devem começar com uma letra e conter somente letras, dígitos e sublinhado ("_"). • O Data Build Manager fornece suporte similar, mas independente, a macros. Exemplos Dado o arquivo de seleções selections-macro.tml, contendo o seguinte: create ${monthName}Trans${year} := month(PurchaseDate) = ${month} and year(PurchaseDate) = ${year}; Usar substituições de macro para selecionar registros de Abril de 1999 do focus RetailTransApril.ftr: qsselect -macro monthName=April -macro year=1999 -macro month=4 -selections selections-macro.tml -input RetailTransApril.ftr -output RetailTransAprilSelection1.ftr Ou, alternativamente, dado o arquivo de macros, macros.tml, contendo o seguinte: monthName=April year=1999 month=4 Aplicar essas macros para atingir o mesmo resultado: qsselect -macro @macros.tml -selections selections-macro.tml -input RetailTransApril.ftr -output RetailTransAprilSelection2.ftr Consulte também XML no Portrait Miner na página 340 Guia de referência de comando de compilação de dados e do TML 25 Capítulo Gerenciar uma compilação de dados Portrait Miner Nesta seção: • qsbuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 3 qsbuild qsbuild Sinopse qsbuild [-input <plano de compilação>] [-targets <destino> [, <destino> ...] [-skip <destino> [, <destino> ...] [-D<nome>=<valor>] [-propertyfile <arquivo de propriedades>] [-describe] [-dryrun] [-validate full | -validate warn | -validate none] [-schema <arquivo de esquema>] [-lib <caminho de classe>] [-preprocess] [-warn] Descrição: Executa o plano de compilação qsbuild.qsb no diretório atual (a menos que seja especificado um plano de compilação diferente usando a opção -input). Argumentos opcionais 28 Opção Efeito -D<nome>=<valor> Atribui o valor fornecido ao parâmetro nomeado ou outra propriedade. (Note que não há espaço depois de -D.) -describe Em vez de executar o plano de compilação, descreve-o, listando alvos principais e suas descrições. -dryrun Executa o plano de compilação normalmente, mas exibe os comandos de compilação de dados em vez de os executar. (Quaisquer tarefas que não são comandos de compilação de dados são executadas normalmente.) -input <plano de compilação> Usa o plano de compilação especificado em vez do arquivo qsbuild.qsb no diretório atual. -lib <caminho de classe> Usa o caminho de classe especificado como caminho de pesquisa adicional para as classes Java. -preprocess Valida o plano de compilação e gera um arquivo de compilação intermediário. Portrait Miner 7.0A Capítulo 3: Gerenciar uma compilação de dados Portrait Miner Opção Efeito -propertyfile <arquivo de propriedades> Atribuir valores para parâmetros ou outras propriedades, lendo pares <nome>=<valor> de linhas sucessivas do arquivo de propriedades. -schema <arquivo de esquema> Valida o plano de compilação contra o esquema especificado (na sintaxe RELAX NG) em vez de o esquema citado no plano de compilação. É possível usar um URI para especificar a localização de um arquivo de esquema não local. -skip <destino> [, <destino> ...] Não compila os destinos especificados, mesmo se outros destinos dependerem deles. -targets <destino> [, <destino> ...] Compila os destinos especificados em vez de o destino padrão. -validate fail Valida o plano de compilação contra seu esquema, executando o plano somente se for válido (o padrão se não especificar uma opção -validate). -validate none Não valida o plano de compilação contra seu esquema. -validate warn Valida o plano de compilação contra seu esquema; se houver erros, emite avisos, mas tenta executar o plano, independentemente de sua validade. -warn Em vez de abortar o plano de compilação quando não consegue compilar um destino, emite um aviso e tenta compilar outros destinos que não dependam do destino que falhou. Além dessas opções de linha de comando, qsbuild aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • O plano de compilação descreve como construir um conjunto de dados de análise ou implantar um modelo. Contém vários "destinos" com dependências entre eles, e as sequências de operações necessárias para compilar os destinos. O arquivo usa um formato de arquivo baseado em XML. Para mais informação sobre o Data Build Manager e o formato dos planos de compilação, consulte Usar o Data Build Manager. • Também é possível acessar a maior parte das funcionalidades do qsbuild por meio do Data Build Manager , disponível no Portrait Miner. Exemplos Executar uma compilação de dados usando o plano de compilação qsbuild-starter.qsb: qsbuild -input qsbuild-starter.qsb Executar somente a tarefa Clean dentro do plano de compilação qsbuild.qsb: qsbuild -targets Clean -input qsbuild.qsb Guia de referência de comando de compilação de dados e do TML 29 qsbuild Executar o plano de compilação qsbuild.qsb com o parâmetro Month definido para June: qsbuild -DMonth=June -input qsbuild.qsb Consulte também XML no Portrait Miner na página 340 30 Portrait Miner 7.0A Capítulo Comandos para importar e exportar dados Nesta seção: • • • • • • • • • • • • • qsdbaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 qsimportdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 qsdbcreatetable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 qsdbinsert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 qsdbupdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 qsgenfdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 qsimportflat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 qsexportflat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 qsimportstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 qsexportstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 qsimportfocus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 Como o Portrait Miner importa tipos de banco de dados .53 Formatos de data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 4 qsdbaccess qsdbaccess Sinopse qsdbaccess {,-add | -list | -test <UDC> | -delete <UDC>,}[-system] Descrição: Cria interativamente uma UDC (Conexão do Banco de Dados do Usuário), lista UDC, testa uma UDC ou exclui uma UDC. Ao usar -add, o qsdbaccess solicita que seja informado um DNS, nome de usuário e senha. Os UDCs são usados em comandos de compilação de dados relacionados a bancos de dados e outras partes do Portrait Miner a conectar a bancos de dados. Consulte o Guia de Administração do Portrait Miner para obter mais informações. Argumentos opcionais Opção Efeito -system Aplique a operação (adicionar, listar, testar ou excluir) aos UDCs do sistema e não a seus UDCs pessoais. Ao usar -add com -system, o qsdbaccess solicita adicionalmente uma URL, uma classe e um DRL. Normalmente, devem ser aceitos os padrões para essas três opções. A opção -system é indicada somente para administradores de sistema. Além dessa opção de linha de comando, qsdbaccess aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • O UDC é criptografado: Se contiver detalhes de autenticação do usuário, somente você pode usá-lo para acessar o banco de dados em questão. • Ao criar uma UDC, o qsdbaccess substitui um UDC existente com o mesmo nome (por isso, substitui os detalhes de autenticação do usuário associados). • O nome de um UDC é sensível a maiúsculas e minúsculas (fred e Fred são distintos), mesmo quando o DSN não é sensível a maiúsculas e minúsculas em relação ao driver ODBC. • Ao usar o Portrait Miner, é possível acessar a funcionalidade do qsdbaccess por meio da caixa de diálogo Editar a Conexão do Banco de Dados. . Exemplos: Criar um UDC para o usuário user para acessar o DSN do banco de dados retail: qsdbaccess Please enter required text at the ">" prompt: DSN> retail 32 Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados User> user Password> Updating connection user@retail Update OK Testing connection user@retail ODBC OK JDBC OK Connection OK Criar um sistema UDC (como usuário administrador) para qualquer usuário acessar o DNS do banco de dados retail: 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 Consulte também qsdbcreatetable na página 35 qsdbinsert na página 37 qsdbupdate na página 38 qsimportdb na página 33 qsimportdb Sinopse qsimportdb -udc <UDC> -table <tabela de banco de dados ou visualização> -fields <coluna> [, <coluna> ...] | -fields @<arquivo de campos>] -xfields <coluna> [, <coluna> ...] | -xfields @<arquivo de campos>] [-catalog <nome do catálogo>] [-schema <nome do esquema>]-output <focus de destino> [-force] qsimportdb -udc <UDC> -sql <arquivo SQL> -output <focus de destino> [-force] Descrição: Cria o focus de destino a partir da tabela de banco de dados específica ou visualização, que está no banco de dados com o UDC fornecido [consulte qsdbaccess na página 32]. Se preferir, cria o focus a partir do resultado de uma instrução SQL SELECT (fornecida em um arquivo SQL). Argumentos opcionais Guia de referência de comando de compilação de dados e do TML 33 qsimportdb Opção Efeito -catalog <nome do catálogo> Localiza a tabela nesse catálogo do banco de dados. -fields <coluna> [, <coluna> ...] Cria campos no focus de destino correspondentes somente às colunas especificadas na tabela. -fields @<arquivo de campos> Cria campos no focus de destino correspondentes somente às colunas na tabela que estão listadas (uma por linha) no arquivo de campos. -force Verifique A opção de linha de comando -force na página 24. -schema <nome do esquema> Localiza a tabela nesse esquema de banco de dados. -xfields <coluna> [, <coluna> ...] Cria campos no focus de destino correspondentes a todas as colunas na tabela, exceto as colunas especificadas. -xfields @<arquivo de campos> Cria campos no focus de destino correspondentes a todas as colunas na tabela, exceto as colunas que estão listadas (uma por linha) no arquivo de campos. Além dessas opções de linha de comando, qsimportdb aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se for especificado um identificador (por exemplo, um nome de campo ou tabela) como argumento de linha de comando, esse será repassado pelo qsimportdb ao driver ODBC, colocado entre aspas, e seu banco de dados pode tratar o identificador com sensibilidade a maiúsculas e minúsculas. • SQL especificado com a opção -sql é passado como está para o banco de dados como uma instrução única; não é necessário um ponto e vírgula final (e pode ser de sintaxe inválida para alguns sistemas de banco de dados). • Usando o qsimportdb, é possível criar um focus que não tenha nomes de campo compatíveis com o Portrait Miner. Para converter o focus em uma forma que possa usar no Decision Studio ou com outros comandos de compilação de dados, pode renomear campos usando qsrenamefields. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades de consulta de banco de dados do qsimportdb por meio da caixa de diálogo Importar de Consulta . Exemplos Criar um focus, RetailCustApril.ftr, contendo todos os registros da tabela RetailCustApril, no DSN referido pelo UDC user@retail: qsimportdb -table RetailCustApril -udc user@retail -output RetailCustApril.ftr 34 Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados Criar um focus, RetailTransAprilCA.ftr, contendo somente os registros da tabela RetailCustApril no qual o valor da coluna PaymentMethod é igual a CA: Dado o arquivo de consulta SQL, select-statement.sql, contendo o seguinte: select * from RetailTransApril where (PaymentMethod = 'CA') Aplique essa consulta para criar um novo focus, RetailTransAprilCA.ftr: qsimportdb -sql select-statement.sql -udc user@retail -output RetailTransAprilCA.ftr Consulte também qsdbcreatetable na página 35 qsdbinsert na página 37 qsdbupdate na página 38 qsdbcreatetable Sinopse qsdbcreatetable -udc < UDC > -focus <focus do modelo> [-subfocus <subfocus>] -table <tabela de destino> -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-catalog <nome do catálogo>] [-schema <nome do esquema>] [-output <arquivo de destino SQL>] qsdbcreatetable -udc <UDC> -sql <arquivo SQL> Descrição: Usa o focus modelo fornecido para definir os nomes e tipos de campos para uma tabela de banco de dados nova e vazia com o nome da tabela fornecida, no banco de dados com o UDC fornecido [consulte qsdbaccess na página 32]. Se preferir, crie uma nova tabela usando uma instrução SQL CREATE TABLE (fornecido num arquivo SQL). Argumentos opcionais Guia de referência de comando de compilação de dados e do TML 35 qsdbcreatetable Opção Efeito -catalog <nome do catálogo> Cria a tabela nesse catálogo do banco de dados. -fields <campo> [, <campo> ...] Cria colunas de tabela correspondentes somente aos campos no focus. -fields @<arquivo de campos> Cria colunas de tabela correspondentes somente aos campos no focus listados (um por linha) no arquivo de campos. [-output <arquivo de destino SQL>] Em vez de criar um tabela no banco de dados, cria um arquivo de saída SQL contendo a instrução CREATE TABLE apropriada. É possível usar mais tarde um arquivo SQL como entrada para qsdbcreatetable (com a opção -sql). -schema <nome do esquema> Cria a tabela com nesse esquema do banco de dados. -subfocus <subfocus> Usa o subfocus especificado do focus modelo. -tags <etiqueta> [, <etiqueta> ...] Cria colunas de tabela correspondentes somente aos campos no focus com etiquetas especificadas. -xfields <campo> [, <campo> ...] Cria colunas de tabela correspondentes a todos os campos no focus, exceto nos campos especificados. -xfields @<arquivo de campos> Cria colunas de tabela correspondentes a todos os campos no focus, exceto os campos listados (um por linha) no arquivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Cria colunas de tabela correspondentes a todos os campos no focus exceto os campos com etiquetas especificadas. Além dessas opções de linha de comando, qsdbcreatetable aceita opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se for especificado um identificador (por exemplo, um nome de campo ou tabela) como argumento de linha de comando, o qsdbcreatetable passa esse identificador para o driver ODBC, colocando-o entre aspas, e seu banco de dados pode tratar o identificador com sensibilidade a maiúsculas e minúsculas. • SQL especificado com a opção -sql é passado como está para o banco de dados como uma instrução única; não é necessário um ponto e vírgula final (e pode ser de sintaxe inválida para alguns sistemas de banco de dados). Exemplo 36 Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados Criar uma tabela de banco de dados vazia, RETAILAGGREGATIONS, do focus RetailAggregationsApril.ftr, conectando por meio da UDC retail: qsdbcreatetable -focus RetailAggregationsApril.ftr -table RETAILAGGREGATIONS -udc user@retail Consulte também qsdbinsert na página 37 qsdbupdate na página 38 qsimportdb na página 33 qsdbinsert Sinopse qsdbinsert-udc <UDC> -input <focus de origem> [-subfocus <subfocus>] -table <tabela de destino> -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-catalog <nome do catálogo>] [-schema <nome do esquema>] Descrição: Insere registros do focus de origem na tabela de banco de dados (usando uma instrução SQL INSERT). Localiza a tabela no banco de dados com o UDC fornecido [consulte qsdbaccess na página 32]. Argumentos opcionais Opção Efeito -catalog <nome do catálogo> Localiza a tabela nesse catálogo do banco de dados. -fields <campo> [, <campo> ...] Insere somente dados dos campos especificados no focus. -fields @<arquivo de campos> Insere somente dados dos campos no focus que estão listados (um por linha) no arquivo de campos. -schema <nome do esquema> Localiza a tabela nesse esquema de banco de dados. -subfocus <subfocus> Usa o subfocus especificado do focus de origem. Guia de referência de comando de compilação de dados e do TML 37 qsdbupdate Opção Efeito -tags <etiqueta> [, <etiqueta> ...] Insere somente dados dos campos no focus com as etiquetas especificadas. -xfields <campo> [, <campo> ...] Insere dados de todos os campos, exceto dos campos especificados. -xfields @<arquivo de campos> Insere dados de todos os campos no focus, exceto os campos listados (um por linha) no arquivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Insere dados de todos os campos no focus, exceto os campos com as etiquetas especificadas. Além dessas opções de linha de comando, o qsdbinsert aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Para criar uma tabela vazia na qual é possível inserir registros, use o qsdbcreatetable. • O comando qsdbinsert insere registros adicionais no banco de dados, em vez de atualizar os registros existentes. Ele não verifica registros duplicados (ou registros com chaves duplicadas), mas seu banco de dados pode ser configurado para impor essa verificação. • Os campos no focus (ou os especificados usando as opções -fields ou -xfields) devem corresponder em nome e ser compatíveis em tipo com as colunas na tabela de banco de dados. • Se for especificado um identificador (por exemplo, um nome de campo ou tabela) como argumento de linha de comando, o qsdbcreatetable passa esse identificador para o driver ODBC, colocado entre aspas, e seu banco de dados pode tratar o identificador com sensibilidade a maiúsculas e minúsculas. Exemplo Inserir dados do focus RetailAggregationsApril.ftr na tabela de banco de dados RETAILAGGREGATIONS: qsdbinsert -input RetailAggregationsApril.ftr -table RETAILAGGREGATIONS -udc user@retail Consulte também qsdbupdate na página 38 qsdbupdate Sinopse qsdbupdate -udc <UDC> -input <focus de origem> [-subfocus <subfocus>] -table <tabela de destino> 38 Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados {-keys <campo-chave> [, <campo-chave>] [, <campo-chave>] | -key @<arquivo-chave>} -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-catalog <nome do catálogo>] [-schema <nome do esquema>] Descrição: Atualizar registros na tabela de banco de dados com dados dos campos especificados no focus de origem (usando uma instrução SQL UPDATE). Cada registro no focus atualiza todos os registros com os mesmos valores do campo-chave na tabela do banco de dados. Localiza a tabela no banco de dados com o UDC fornecido [consulte qsdbaccess na página 32]. Argumentos opcionais Opção Efeito -catalog <nome do catálogo> Localiza a tabela nesse catálogo do banco de dados. -fields <campo> [, <campo> ...] Atualiza a tabela usando somente dados dos campos especificados no focus. -fields @<arquivo de campos> Atualiza a tabela usando somente dados dos campos no focus que não estão listados (um por linha) no arquivo de campos. -schema <nome do esquema> Localiza a tabela nesse esquema de banco de dados. -subfocus <subfocus> Usa o subfocus especificado do focus de origem. -tags <etiqueta> [, <etiqueta> ...] Atualiza a tabela usando somente dados dos campos no focus com etiquetas especificas. -xfields <campo> [, <campo> ...] Atualiza a tabela usando dados de todos os campos no focus, exceto no campos especificados. -xfields @<arquivo de campos> Atualiza a tabela usando dados de todos os campos no focus, exceto os campos listados (um por linha) no arquivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Atualiza a tabela usando dados de todos os campos no focus, exceto os campos com as etiquetas especificadas. Além dessas opções de linha de comando, qsdbupdate aceita opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • O comando qsdbupdate não insere quaisquer registros adicionais na tabela de banco de dados. Guia de referência de comando de compilação de dados e do TML 39 qsgenfdd • Os campos no focus (ou os especificados usando as opções -fields ou -xfields) devem corresponder em nome e ser compatíveis em tipo com as colunas na tabela de banco de dados. No entanto, não é necessário atualizar os valores em todas as colunas da tabela. • Se for especificado um identificador (por exemplo, um nome de campo ou tabela) como argumento de linha de comando, o qsdbcreatetable passará esse identificador para o driver ODBC, colocado entre aspas, e seu banco de dados pode tratar o identificador com sensibilidade a maiúsculas e minúsculas. Exemplo Atualizar somente os campos numberPurchases, averagePurchase e totalPointsRedeemed na tabela RETAILAGGREGATIONS usando o focus RetailAggregationsMay.ftr: qsdbupdate -udc user@retail -keys CustomerID -input RetailAggregationsMay.ftr -table RETAILAGGREGATIONS -fields "numberPurchases, averagePurchase, totalPointsRedeemed" Consulte também qsdbcreatetable na página 35 qsdbinsert na página 37 qsgenfdd Sinopse qsgenfdd -input <arquivo simples> [-template <arquivo FDD modelo>] [-headers] [-separator <separador de campo>] [-null <marcador nulo>] [-stringmarker <marcador de string>] [-datemarker <marcador de data>] [-dateformat <formato de data>] [-defaultday <número do dia>] [-defaultmonth <número do mês>] [-comment <comentário da tabela>] Descrição: Cria um arquivo de descrição de dados simples (arquivo .fdd) para o arquivo simples examinando uma amostra dos registros para determinar a formatação do arquivo. Nomeia o arquivo de descrição de dados simples usando o nome de base do arquivo simples e cria esse arquivo no mesmo diretório do arquivo simples. Argumentos opcionais 40 Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados Opção Efeito -comment <comentário da tabela> Inclui este comentário da tabela no arquivo de descrição de dados simples. -dateformat <formato de data> Substitui o formato de data selecionado automaticamente [consulte Formatos de data na página 55]. -datemarker <marcador de data> Substitui o caractere do marcador de data selecionado automaticamente. -defaultday <número do dia> Inclui esse número de dia nas datas que não têm um componente de dia. -defaultmonth <número do mês> Inclui esse número de mês nas datas que não têm um componente de mês. -headers Inclui uma descrição dos dados como tendo uma linha de cabeçalho inicial, que contém os nomes de campo. -null <marcador nulo> Substitui a string de marcador nulo selecionada automaticamente. -separator <separador de campo> Substitui o caractere do separador de campo selecionado automaticamente. -stringmarker <marcador de string> Substitui o caractere do marcador de string selecionado automaticamente. -template <arquivo FDD modelo> Baseia o arquivo de descrição de dados simples nesse modelo existente do arquivo de descrição de dados simples. Consulte a Ajuda do Portrait Miner para mais informações sobre opções do arquivo simples. Além dessas opções de linha de comando, o qsgenfdd aceita opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se já existir um arquivo de descrição de dados simples, o qsgenfdd não faz nada. • Na maioria dos casos, o qsgenfdd seleciona automaticamente os valores apropriados para os metadados que descrevem um arquivo simples. Porém, como só examina uma amostra dos dados no arquivo simples — e como pode haver ambiguidades no formato do arquivo simples — ele pode errar. Mesmo assim, normalmente, só é necessário substituir um ou dois parâmetros para chegar à interpretação correta do arquivo de dados. • É possível controlar o tamanho das amostras usadas na detecção automática da formatação usando as preferências do Banco de Dados do Arquivo Simples tamanho de amostra de formato de dado e tamanho de amostra de dados (consulte a Ajuda do Portrait Miner). Guia de referência de comando de compilação de dados e do TML 41 qsimportflat • Para a deteção automática de formatação funcionar, os campos no arquivo simples devem ser delimitados por um caractere separador, em vez de serem distinguidos pela posição (ou seja, o arquivo não pode estar em um formato de largura fixa). • Se for usado um arquivo FDD modelo, ele deve incluir uma descrição de todos os campos em um componente table. • As opções de formatação especificadas na linha de comando substituem as opções de formatação globais em um modelo de arquivo FDD, essas, por sua vez, substituem as opções de formatação globais detectadas automaticamente. As opções de linha de comando não substituem opções de campo especificas. • Também é possível acessar a funcionalidade de qsgenfdd por meio do assistenteNew Focus disponível no Decision Studio ou Portrait Miner. Exemplos Criar um arquivo de descrição de dados simples para o arquivo de texto RetailCustMay.txt: qsgenfdd -input RetailCustMay.txt Usar o arquivo FDD resultante para criar um novo focus, RetailCustMay.ftr: qsimportflat -input RetailCustMay.fdd -output RetailCustMay.ftr Usar uma string de formatação de dados personalizada para criar um arquivo FDD para o arquivo de texto RetailCustMay.txt: qsgenfdd -dateformat "%d-%b-%Y %H:%M:%S" -input RetailCustMay.txt Consulte também qsexportflat na página 44 qsimportflat na página 42 qsimportflat Sinopse qsimportflat -input <arquivo simples> -output <focus de destino> [-force] -encoding <codificação> -fields <campo> [, <campo> ...] | -fields @<arquivo de campos>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos>] [-maxwarnings <número de avisos>] | [-nowarnings] [-maxerrors <número de erros>] Descrição Cria o focus de destino a partir de dados do arquivo simples (podendo ser um arquivo de texto ou um arquivo de descrição de dados simples). Argumentos opcionais 42 Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados Opção Efeito -encoding <codificação> Codificação do arquivo de entrada (UTF-8, Shift-JIS, LATIN1, EUC_JP, UTF16-LE, UTF_BE, etc.). . -fields <campo> [, <campo> ...] Cria campos no focus de destino correspondentes somente aos campos especificados no arquivo simples. -fields @<arquivo de campos> Cria campos no focus de destino correspondentes somente aos campos nos arquivos simples listados (um por linha) no arquivo de campos. -force Verifique A opção de linha de comando -force na página 24. -maxerrors <número de erros> Anula a importação de arquivo simples se o processo gerar um número de erros superior ao especificado em relação à formatação do arquivo simples. -maxwarnings <número de avisos> Anula a importação de arquivo simples se o processo gerar um número de avisos superior ao especificado em relação à formatação do arquivo simples. [-nowarnings] Não gera quaisquer avisos em relação à formatação do arquivo simples. -xfields <campo> [, <campo> ...] Cria campos no focus de destino correspondentes a todos os campos no arquivo simples, exceto os campos especificados. -xfields @<arquivo de campos> Cria campos no focus de destino correspondentes a todos os campos no arquivo simples, exceto os campos listados (um por linha) no arquivo de campos. Além dessas opções de linha de comando, o qsimportflat aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • É necessário especificar um arquivo de descrição de dados simples (FDD) em vez de um arquivo de texto como entrada para o qsimportflat. É possível criar um arquivo FDD a partir de um arquivo de texto usando o qsgenfdd. • Por padrão, a preferência do Banco de Dados de Arquivo Simples permitir erros de formato de dado está definida como verdadeira (consulte a Ajuda do Portrait Miner). Isso significa que todos os erros de formatação do arquivo simples são tratados como avisos e a opção -maxerrors não tem efeito. • As opções -maxerrors, -maxwarnings e -nowarnings substituem as definições das preferências do Banco de Dados do Arquivo Simples extração de máximos Guia de referência de comando de compilação de dados e do TML 43 qsexportflat erros, extração de máximos avisos e ignore avisos de extração respectivamente. • Também é possível acessar a funcionalidade qsimportflat por meio do assistente Novo Focus disponível no Decision Studio ou Portrait Miner. Exemplos Criar um novo focus, RetailTransApril.ftr, contendo todos os campos do arquivo simples RetailTransApril.txt: qsimportflat -input RetailTransApril.txt -output RetailTransApril.ftr Criar um novo focus, RetailCustAprilSomeFields.ftr, contendo os campos CustomerID, StartDate, Age, PostCode e Gender do arquivo simples RetailCustApril.txt, enquanto também cria um arquivo FDD: qsgenfdd -input RetailCustApril.txt qsimportflat -fields "CustomerID, StartDate, Age, Postcode, Gender" -input RetailCustApril.fdd -output RetailCustAprilSomeFields.ftr depois cria outro focus RetailCustAprilOtherFields.ftr, contendo todos os campos, exceto CustomerID e PostCode, a partir do arquivo simples RetailCustApril.txt, usando o mesmo arquivo FDD: qsimportflat -xfields "CustomerID, Postcode" -input RetailCustApril.fdd -output RetailCustAprilOtherFields.ftr Consulte também qsexportflat na página 44 qsexportflat Sinopse qsexportflat -input <focus de origem> [-subfocus <subfocus>] -output <arquivo simples> [-alwaysquotestrings] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-records <expressão FDL> | -records @<arquivo FDL>] [-template <arquivo FDD modelo>] [-fdd] [-headers] 44 Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados [-separator <separador de campo>] [-null <marcador nulo>] [-stringmarker <marcador de string>] [-datemarker <marcador de data>] [-dateformat <formato de data>] [-defaultday <número do dia>] [-defaultmonth <número do mês>] [-fixedformat] Descrição Cria o arquivo simples a partir dos dados no focus de origem. Argumentos opcionais Opção Efeito -alwaysquotestrings Coloca aspas em todos os valores da string no arquivo simples, não somente nas strings com caracteres especiais (como o separador). -dateformat <formato de data> Use esse formato [consulte Formatos de data na página 55] para datas no arquivo simples. -datemarker <marcador de data> Use esse caractere marcador para introduzir datas no arquivo simples. -defaultday <número do dia> Inclui esse número de dia em qualquer arquivo de descrição de dados simples gerado (para descrever datas formatadas sem um componente de dia). -defaultmonth <número do mês> Inclui esse número de mês em qualquer arquivo de descrição de dados simples gerado (para descrever datas formatadas sem um componente de mês). -fdd Além de criar o arquivo simples, cria um arquivo de descrição de dados simples (arquivo .fdd) para descrever a formatação dos dados. -fields <campo> [, <campo> ...] Cria campos no arquivo simples correspondentes somente aos campos especificados no focus de origem. -fields @<arquivo de campos> Cria campos no arquivo simples correspondentes somente aos campos no focus de origem listados (um por linha) no arquivo de campos. Guia de referência de comando de compilação de dados e do TML 45 qsexportflat Opção Efeito -fixedformat Use um número fixo de caracteres para cada campo (selecionado para acomodar todos os valores possíveis desse tipo de dados). É possível usar essa opção em conjunto com um separador de campo vazio para criar um arquivo simples, no qual os campos são distinguidos por posição, em vez de usarem um caractere separador. 46 -headers Inclui uma linha de cabeçalho inicial no arquivo simples, contendo nomes de campo. -null <marcador nulo> Use esse string de marcador nulo em vez de deixar em branco para indicar ocorrências do valor nulo em um arquivo simples. -records <expressão FDL> Cria registros no arquivo simples correspondentes somente aos registros no focus de origem para o qual a expressão FDL numérica é diferente de zero ("verdadeiro"). -records @<arquivo FDL> Cria registros no arquivo simples correspondentes somente aos registros no focus de origem para o qual a expressão FDL no arquivo especificado é diferente de zero ("verdadeiro"). -separator <separador de campo> Use esse caractere separador de campo, em vez de uma vírgula. -stringmarker <marcador de string> Use esse caractere marcador de string em vez de aspas duplas. -subfocus <subfocus> Usa o subfocus especificado do focus de origem. -tags <etiqueta> [, <etiqueta> ...] Cria campos no arquivo simples correspondentes somente aos campos no focus com as etiquetas especificadas. -template <arquivo FDD modelo> Baseia a formatação do arquivo simples nesse modelo existente do arquivo de descrição de dados simples. -xfields <campo> [, <campo> ...] Cria campos no arquivo simples correspondentes a todos os campos no focus de origem, exceto os campos especificados. -xfields @<arquivo de campos> Cria campos no focus de destino correspondentes a todos os campos no focus de origem, exceto os campos listados (um por linha) no arquivo de campos. Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados Opção Efeito -xtags <etiqueta> [, <etiqueta> ...] Cria campos no arquivo simples correspondente a todos os campos no focus de origem, exceto os campos com as etiquetas especificadas. Consulte a Ajuda do Portrait Miner para mais informações sobre opções do arquivo simples. Além dessas opções de linha de comando, o qsexportflat aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se for usada uma expressão de seleção FDL (para exportar somente um subconjunto de registros no focus), todos os campos usados na expressão devem ser exportados. • Se for especificado um arquivo simples com a extensão .fdd, o qsexportflattrata esse arquivo como um arquivo de descrição de dados simples (independente se for ou não especificada a opção -fdd) e cria um arquivo simples correspondente com a extensão .txt. • Se for usado um arquivo FDD modelo, ele deve incluir uma descrição de todos os campos em um componente table. • As opções de formatação especificadas na linha de comando substituem as opções de formatação globais do arquivo FDD modelo. As opções de linha de comando não substituem opções de campo especificas. • Se já existir um arquivo simples com o mesmo nome do arquivo de saída, o qsexportflat faz um backup do arquivo existente (com "~" anexado ao nome do arquivo) em vez de somente substitui-lo. • É possível acessar a maior parte das funcionalidades do qsexportflat por meio da caixa de diálogo Exportar Focus, no Decision Studio ou o assistente Exportar Texto disponível no Portrait Miner . Exemplos Criar um arquivo simples, RetailTransApril.csv que contém todos os registros do focus RetailTransApril.ftr : qsexportflat -input RetailTransApril.ftr -output RetailTransApril.csv Criar um arquivo simples novo, RetailTransAprilDates.csv que contém somente os campos CustomerID e PurchaseDate do focus RetailTransApril.ftr, usando um formato de data particular: qsexportflat -fields "CustomerID, PurchaseDate" -dateformat "%e %h %Y" -input RetailTransApril.ftr -output RetailTransAprilDates.csv Dado um arquivo de descrição de dados simples modelo, template.fdd, contendo o seguinte: separator | null (###) dateformat ((%e %h %Y)) skip header table \ CustomerID string(18) \ PurchaseDate date \ Store integer \ Amount real \ PaymentMethod string(2) \ PointsRedeemed integer Guia de referência de comando de compilação de dados e do TML 47 qsimportstat Aplicar esse modelo para criar um arquivo simples, RetailTransAprilDates.txt: qsexportflat -template template.fdd -input RetailTransApril.ftr -output RetailTransAprilDates.txt Consulte também qsgenfdd na página 40 qsimportflat na página 42 qsimportstat Sinopse qsimportstat -input <conjunto de dados de origem> -output <focus de destino> [-force] [-type <tipo de conjunto de dados>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos>][-metadata <arquivo de metadados>] Descrição: Cria o focus de destino a partir de dados no conjunto de dados de origem de terceiros. Conjuntos de dados SAS, SPSS e Excel estão entre os suportados (consulte http://support.quadstone.com/info/requirements/ para obter uma lista detalhada). Argumentos opcionais 48 Opção Efeito -fields <campo> [, <campo> ...] Cria campos no focus de destino correspondentes somente aos campos especificados no conjunto de dados de origem. -fields @<arquivo de campos> Cria campos no focus de destino correspondentes somente aos campos no conjunto de dados de origem listados (um por linha) no arquivo de campos. -force Verifique A opção de linha de comando -force na página 24. -metadata <arquivo de metadados> Cria o arquivo de metadados a partir de um arquivo de catálogo SAS format.sas7bcat que deve estar presente na mesma pasta do conjunto de dados SAS de origem. -type <tipo de conjunto de dados> Interpreta o conjunto de dados de origem como o tipo de conjunto de dados especificado, substituindo a interpretação padrão (dependendo da extensão do nome do arquivo). Tipos de conjunto de dados válidos incluem sas, spss e Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados Opção Efeito excel; para ver uma lista completa, use a opção -help. -xfields <campo> [, <campo> ...] Cria campos no focus de destino correspondentes a todos os campos no conjunto de dados de origem, exceto os campos especificados. -xfields @<arquivo de campos> Cria campos no focus de destino correspondentes a todos os campos no conjunto de dados de origem listados (um por linha) no arquivo de campos. Além dessas opções de linha de comando, o qsimportstat aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se for tentada a importação a partir de um conjunto de dados SAS e o arquivo de metadados já existir, a operação falha. Para evitar isso, use o argumento -force. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsimportstat por meio da caixa de diálogo Importar Focus . Exemplos Criar um novo focus, RetailTransApril.ftr, contendo todos os campos do arquivo SAS RetailTransApril.sas7bdat: qsimportstat -input RetailTransApril.sas7bdat -output RetailTransApril.ftr Criar um novo focus RetailCustAprilSomeFields.ftr, contendo os campos CustomerID, StartDate, Age, PostCode e Gender a partir do arquivo SAS RetailCustApril.bin: qsimportstat -fields "CustomerID, StartDate, Age, Postcode, Gender" -input RetailCustApril.bin -type sas -output RetailCustAprilSomeFields.ftr Consulte também qsdescribestat na página 105 qsexportstat na página 49 qsexportstat Sinopse qsexportstat -input <focus de origem> [-subfocus <subfocus>] -output <conjunto de dados de destino> [-overwrite] [-type <tipo de conjunto de dados>] Guia de referência de comando de compilação de dados e do TML 49 qsexportstat -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-records <FDL expression> | -records @<FDL file>] Descrição: Cria um conjunto de dados de destino de terceiros a partir de dados no focus de origem. Conjuntos de dados SAS, SPSS e Excel estão entre os suportados (consulte http://support.quadstone.com/info/requirements/ para obter uma lista detalhada). Argumentos opcionais Opção Efeito -fields <campo> [, <campo> ...] Cria campos no conjunto de dados de destino correspondentes somente aos campos especificados no focus de origem. -fields @<arquivo de campos> Cria campos no conjunto de dados de destino correspondentes somente aos campos no focus de origem listados (um por linha) no arquivo de campos. -overwrite Permite um novo conjunto de dados especificados usando a opção -output par substituir um arquivo existente. Sem a opção -overwrite, se o conjunto de dados especificado com a opção -output já existir, o comando não faz nada (exceto emitir um aviso). 50 -records <expressão FDL> Cria registros no focus de destino correspondentes somente aos registros no focus de origem para o qual a expressão FDL numérica é diferente de zero ("verdadeira"). -records @<arquivo FDL> Cria registros no conjunto de dados de destino correspondentes somente aos registros no focus de origem para o qual a expressão FDL no arquivo especificado é diferente de zero ("verdadeira"). -subfocus <subfocus> Usa o subfocus especificado do focus de origem. -tags <etiqueta> [, <etiqueta> ...] Cria campos no conjunto de dados de destino correspondentes somente aos campos no focus de origem com as etiquetas especificadas. -type <tipo de conjunto de dados> Cria um conjunto de dados do tipo de conjunto de dados especificado, em vez de usar a extensão do nome do arquivo para determinar seu tipo. Tipos de conjuntos de dados válidos incluem sas, spss, Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados Opção Efeito excel (.xls) e excelx (.xlsx). Para ver uma lista completa, use a opção -help. -xfields <campo> [, <campo> ...] Cria campos no focus de destino correspondentes a todos os campos no conjunto de dados de origem, exceto os campos especificados. -xfields @<arquivo de campos> Cria campos no focus de destino correspondentes a todos os campos no conjunto de dados de origem listados (um por linha) no arquivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Cria campos no focus de destino correspondentes a todos os campos no conjunto de dados de origem, exceto os campos com as etiquetas especificadas. Além dessas opções de linha de comando, o qsexportstat aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsexportstat por meio da caixa de diálogo Exportar para outro programa . Exemplos Criar um novo arquivo SAS RetailTransAprilStore800.sas7bdat, que contenha um subconjunto de registros (somente compra da loja 800) e só campos de gastos, a partir do focus RetailTransApril.ftr: qsexportstat -input RetailTransApril.ftr -output RetailTransAprilStore800.sas7bdat -fields "CustomerID, PurchaseDate, Store, Amount" -records "Store = \"800\"" Consulte também qsdescribestat na página 105 qsimportstat na página 48 qsimportfocus Sinopse qsimportfocus -input <focus de origem> [-subfocus <subfocus>] -output <focus de destino> [-force] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-records <expressão FDL> | -records @<arquivo FDL>] [-preservetypes] Guia de referência de comando de compilação de dados e do TML 51 qsimportfocus Descrição: Cria o focus de destino a partir dos dados do focus de origem. Não copie os metadados . Argumentos opcionais Opção Efeito -fields <campo> [, <campo> ...] Cria campos no focus de destino correspondentes somente aos campos especificados no focus de origem. -fields @<arquivo de campos> Cria campos no focus de destino correspondentes somente aos campos no focus de origem listados (um por linha) no arquivo de campos. -force Verifique A opção de linha de comando -force na página 24. [-preservetypes] Preserva o tipos de dados de legado de um focus criados usando uma versão anterior do Portrait Miner. -records <expressão FDL> Cria registros no focus de destino correspondentes somente aos registros no focus de origem para o qual a expressão FDL numérica é diferente de zero ("verdadeira"). -records @<arquivo FDL> Cria registros no focus de destino correspondentes somente aos registros no focus de origem para o qual a expressão FDL no arquivo especificado é diferente de zero ("true"). -subfocus <subfocus> Usa o subfocus especificado do focus de origem. -tags <etiqueta> [, <etiqueta> ...] Cria campos no focus de destino correspondentes somente aos campos no focus de origem com as etiquetas especificadas. -xfields <campo> [, <campo> ...] Cria campos no focus de destino correspondentes a todos os campos no focus de origem, exceto os campos especificados. -xfields @<arquivo de campos> Cria campos no focus de destino correspondentes a todos os campos no focus de origem, exceto os campos listados (um por linha) no arquivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Cria campos no focus de destino correspondentes a todos os campos no focus de origem, exceto os campos com as etiquetas especificadas. Além dessas opções de linha de comando, qsimportfocus aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Para criar uma cópia de um focus, incluindo metadados, use qscopy. 52 Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados • O focus de destino é independente do focus de origem, ou seja, não compartilha dados subjacentes. • Se o focus de origem foi criado em uma versão anterior do Portrait Miner, pode conter campos com tipos de dados de legado. Por padrão, o qsimportfocus converte esses campos para campos com datatypes integer, real, date e string. É possível forçar o qsimportfocus a reter os tipos de dados originais no focus de destino usando a opção -preservetypes. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsimportfocus por meio da caixa de diálogo Exportar como Focus . Exemplos Criar um novo focus RetailTransAprilStandardTypes.ftr, que contenha todos os registros do focus RetailTransApril.ftr mas converter os campos com tipos de dados de legado para tipos de dados padrão: qsimportfocus -input RetailTransApril.ftr -output RetailTransAprilStandardTypes.ftr Criar um novo focus RetailTransAprilStore800.ftr, que contém um subconjunto de registros (somente compra da loja 800) e só campos de gastos, do focus RetailTransApril.ftr: qsimportfocus -input RetailTransApril.ftr -output RetailTransAprilStore800.ftr -fields "CustomerID, PurchaseDate, Store, Amount" -records "Store = \"800\"" Criar um novo focus, RetailTransApril2Customers.ftr, contendendo somente as transações para cliente 20450000000036004 e 20450000000043009: qsimportfocus -records "strmember(CustomerID, \"20450000000036004\", \"20450000000043009\")" -input RetailTransApril.ftr -output RetailTransApril2Customers.ftr Como o Portrait Miner importa tipos de banco de dados Importar para o Portrait Miner a partir de um banco de dados O Portrait Miner mapeia os seguintes tipos de bancos de dados em seus tipos de dados, baseados no tamanho do tipo de banco de dados e nas configurações de preferências dos Bancos de dados. Tipo de banco Escala de dados Precisão representar integers grandes como strings char, char2, varchar, Guia de referência de comando de compilação de dados e do TML preservar tipos numéricos durante a importação tipo de campo do Portrait Miner string 53 Importar para o Portrait Miner a partir de um banco de dados Tipo de banco Escala de dados Precisão representar integers grandes como strings preservar tipos numéricos durante a importação tipo de campo do Portrait Miner varchar2, nchar, nchar2, nvarchar, nvarchar2 date, time, timestamp, datetime, smalldatetime data int, integer, tinyint, smallint, byteint, bit inteiro bigint false true real false false string true decimal, dec, numeric, number decimal, dec, numeric, number <0 15 > 15 0 string true real false real > 15 string 0 real 10 > 10 false 15 inteiro false true real > 15 false false real > 15 true string > 10 string float, double, real decimal, dec, numeric, number money real >0 15 > 15 true false > 15 real real string true real false string smallmoney real Observação: • Nas linhas marcadas com , pode haver uma perda de precisão. 54 Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados • Nas linhas marcadas com , os valores demasiado grandes para armazenar como inteiros serão convertidos em Nulos. Exportar do Portrait Miner para um banco de dados Os tipos de bancos de dados que o Portrait Miner exporta dependem do banco de dados de destino e do driver ODBC.O Portrait Miner sugere um tipo apropriado para o banco de dados que você especificar, enquanto o driver ODBC interpreta essa sugestão em um dos tipos nesse banco de dados. Formatos de data Ao trabalhar com arquivos simples e expressões FDL, é possível especificar como o Portrait Miner deve interpretar ou exportar datas e horas, usando o formato de data padrão [consulte Formatos de data padrão na página 55] ou um formato de data personalizado [consulte Formatos de data personalizados na página 55]. Formatos de data padrão Nome Formato de data American MM/DD/AAAA:hh:mm:ss, por exemplo, 12/31/2000:13:36:59 European DD/MM/AAAA:hh:mm:ss, por exemplo, 31/12/2000:13:36:59 YMD AAAA/MM/DD:hh:mm:ss, por exemplo, 2000/12/31:13:36:59 Observação: • Os três formatos de data padrão também se aplicam a datas sem o componente de horas e somente horas ("datas" somente com o componente de horas). Em datas com somente data ou somente horas, as horas e datas são omitidas, respectivamente. • Os formatos American, European e YMD também englobam dados nas formas MMDDAAAA, DDMMAAAA e AAAAMMDD, respectivamente (somente para entradas). Formatos de data personalizados É possível especificar um formato de data personalizado usando códigos de caracteres especiais, cada um começando com um sinal de porcentagem %: Código Componente da data formatada %% O próprio sinal de porcentagem: % %? Coincide com qualquer caractere Guia de referência de comando de compilação de dados e do TML 55 Formatos de data personalizados Código Componente da data formatada %* Coincide com qualquer caractere; por exemplo, para ignorar caracteres à direita, use %Y/%m/%d%* %a O nome do dia, de forma abreviada ("seg," "ter," ..., "dom" %A O nome do dia, completo ("segunda-feira," "terça-feira," ..., "domingo") %b O nome do mês, de forma abreviada ("jan," "fev," ..., "dez") %B O nome do mês, completo ("janeiro," "fevereiro," ..., "dezembro") %c (Entrada) Equivalente a "%a %b %e %T %Y" (Saída) A data e hora na representação padrão para a localização atual 56 %C Equivalente a "%a %b %e %T %Z %Y" %d O dia do mês, usando dois dígitos ("01," "02," ..., "31") %D Equivalente a %m/%d/%y %e O dia do mês, com apenas um dígito precedido por um espaço (" 1," " 2," ..., "31") %h Equivalente a "%b" %H A hora do dia, usando o relógio de 24 horas ("00," "02," ..., "23") %I A hora do dia, usando o relógio de 12 horas ("01," "02," ..., "12") %j O dia do ano, usando três dígitos (datas Julianas) ("001," "002," ..., "366") %m O número do mês, usando dois dígitos ("01," "02," ..., "12") %M O minuto da hora, usando dois dígitos ("00," "01," ..., "59") %p "AM" ou "PM", de acordo com a hora do dia %r Equivalente a %I:%M:%S %p %R Equivalente a %H:%M %S O segundo do minuto, usando dois dígitos ("00," "01," ..., "61") Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados Código Componente da data formatada %T Equivalente a %H:%M:%S %x A data formatada de acordo com ordem de x de preferência de x %X Equivalente a "%x" %y O ano do século, usando dois dígitos ("00," "01," ..., "99") %Y O ano, usando quadro dígitos %Z O nome do fuso horário da localização atual Observação: • Para usar "%D" ou "%y," também é necessário especificar o ano dinâmico ou um ano futuro máximo (mas não ambos). Se for configurado um ano dinâmico igual a um ano válido Y, o Portrait Miner interpretará os anos de dois dígitos como anos entre Y - 99 e Y. Por exemplo, se for configurada a preferência para 2077, o Portrait Miner interpreta os anos de dois dígitos 76, 77 e 78 como 2076, 2077 e 1978, respectivamente. Se for configurado um ano futuro máximo igual a um valor n positivo e o ano atual for Y, o Portrait Miner interpretará todos os anos de dois dígitos como anos entre Y + n - 99 e Y + n. Por exemplo, se forem configuradas as preferências para 50 e o ano atual for 2002, o Portrait Miner interpretará os anos de dois dígitos 51, 52 e 53 como 2051, 2052 e 1953, respectivamente. • Se for definida a escreva em formato específico de localidade os códigos "%a," "%A," "%b," "%B," "%C," "%p," "%x," "%X," e "%Z" podem produzir resultados diferentes ao exibirem datas (mas não ao interpretá-las). • Assim como /, qualquer caractere (exceto para o separador de campo ou marcador nulo) pode ser usado como separador com a data. • Para um formato de data sem um componente dia ou mês explícito, é possível especificar um padrão usando o qualificador "dia" ou "mês". • Os códigos de caracteres especiais são os da função strftime da biblioteca C padrão. Exemplo R–1: Strings de Formatação de Data Exemplo de data String de formato de data 02/04/2003 European 27/10/1940 04/02/2003 American 10/27/1940 2003/04/02 YMD 1940/10/27 Guia de referência de comando de compilação de dados e do TML 57 Formatos de data personalizados Exemplo de data String de formato de data 02-abr-2003 %d-%b-%Y 27-out-1940 02 abr 2003 ((%d %b %Y)) 27 out 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 abr 2003 ((%e %b %Y)) 27 out 1940 2 de abril de 2003 ((%B %e, %Y)) 02/04/2003 13:25 ((%d/%m/%Y %H:%M)) 27/10/1940 08:23 2003-04-02 13:25:15000000 ((%Y-%m-%d %H:%M:%S%*)) 2 de abril de 2003 ((%B %d, %Y)) 2-abr-2003 %e-%b-%Y 27-out-1940 02/04/03 (European pivot=2010) 27/10/40 04/02/03 (American pivot=2010) 10/27/40 03/04/02 (YMD pivot=2010) 40/10/27 02-abr-03 (%d-%b-%y pivot=2010) 27-out-40 abril 02, 03 ((%B %d, %y) pivot=2010) 2-abr-03 (%e-%b-%y pivot=2010) 27-out-03 abril 2, 03 58 ((%B %e, %y) pivot=2010) Portrait Miner 7.0A Capítulo 4: Comandos para importar e exportar dados Exemplo de data String de formato de data 01:25 PM ((%I:%M %p)) 08:23 AM 13:25 %H:%M 08:23 Guia de referência de comando de compilação de dados e do TML 59 Capítulo Comandos para processar os focus Nesta seção: • • • • • • • • • qssort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62 qsderive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 qsmeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66 qstrack, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 qsselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72 qsrenamefields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 qsexportmetadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77 qsimportmetadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78 qsupdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 5 qssort qssort Sinopse qssort -input <focus de origem>> [-subfocus <subfocus>] -output <focus de destino> [-force] {-keys <campo-chave> [, <campo-chave>] [, <campo-chave>]| -key @<key file>}} qssort-input <focus de origem> [-subfocus <subfocus>] -check {-keys <campo-chave> [, <campo-chave>] [, <campo-chave>]| -key @<key file>}} Descrição: Classifica os registros do focus de origem pelos campos-chave, para produzir o focus de destino. Se preferir, verifica se o focus de origem já foi classificado. Argumentos opcionais Opção Efeito -force Verifique A opção de linha de comando -force na página 24. -subfocus <subfocus> Usa o subfocus especificado do focus de origem. Além dessa opção de linha de comando, qssort aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • É possível usar no máximo três campos-chave com o qssort. • A ordem de agrupamento do Portrait Miner, como é usada pelo qssort, pode diferir, em detalhe, da ordem de agrupamento usada pelos bancos de dados ou utilitários de classificação de arquivos de terceiros. Como é importante para um focus ser classificado, é preciso verificar a ordem de classificação — e, se necessário, voltar a classificar — usando o qssort. • No geral, é muito mais rápido verificar a ordem de classificação de um focus que classificá-lo. • No geral, é um pouco mais rápido classificar um focus se ele já tiver sido classificado antes. • Mesmo quando o focus (ou subfocus) contém somente uma seleção de registros, o focus de destino contém todos os registros do focus de origem. • Se for usada a opção -verbose, o qssort informará o número de valores-chave únicos e o número de registros contendo o valor-chave duplicado mais frequente. • O comando qssort necessita de espaço de disco temporário comparável ao tamanho do focus de origem e também de espaço para o focus de destino. • O focus de destino é independente do focus de origem, ou seja, não compartilha dados subjacentes. 62 Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qssort por meio do assistente Classificar Focus . Exemplos Verificar se o focus RetailCustApril.ftr é classificado pelo campo CustomerID: qssort -check -input RetailCustApril.ftr -keys CustomerID Criar um novo focus, RetailTransAprilSorted.ftr, contendo todos os registros do focus RetailTransApril.ftr, classificado pelo campo CustomerID: qssort -output RetailTransAprilSorted.ftr -input RetailTransApril.ftr -keys CustomerID qsderive Sinopse qsderive -derivations <arquivo de derivações> -input <focus de origem> [-subfocus <subfocus>] [-macro <nome>=<valor>[-macro <nome>=<valor> ...] | -macro @<nome>=<arquivo de macro>] [-output <focus de destino>] [-force] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos>] [-random <semente integer>] [-warn] [-savexml] Descrição: copia todos os campos (por padrão) do focus de origem para o focus de destino; deriva campos no focus de destino de acordo com as definições de campo no arquivo de derivações que, por sua vez, contém instruções create ou representações XML correspondentes. Por padrão, anexa os campos derivados ao focus de origem. Argumentos opcionais Comando Objetivo Opção Efeito -fields <campo> [, <campo> ...] Deriva somente os campos especificados. -fields @<arquivo de campos>> Deriva somente os campos listados (um por linha) no arquivo de campos. -force Verifique A opção de linha de comando -force na página 24. -macro <nome>=<valor> Verifique A opção de linha de comando -macro na página 24. Guia de referência de comando de compilação de dados e do TML 63 qsderive Comando Objetivo -macro @<arquivo de macros> Verifique A opção de linha de comando -macro na página 24. -output <focus de destino> Em vez de anexar os campos derivados ao focus de origem, copia o focus de origem para o focus de destino e anexa os campos derivados ao focus de destino. -random <semente integer> Usa a semente integer, em vez de 0, para quaisquer funções de números aleatórias do FDL que ocorrem em expressões de derivação. -savexml Além de derivar um ou mais campos, grava a(s) expressão(ões) de derivação em formato TML e XML para os arquivos <saída>.tml e <saída>.xml, no mesmo diretório do focus de destino, onde <saída> é o nome de base do focus de destino. -subfocus <subfocus> Usa o subfocus especificado do focus de origem. -warn Se um campo de derivação falhar, ele exibirá um aviso e continuará a derivar outros campos (em vez de parar). -xfields <campo> [, <campo> ...] Deriva todos os campos no arquivo de derivações, exceto os campos especificados. -xfields @<arquivo de campos> Deriva todos os campos no arquivo de derivações, exceto os campos listados (um por linha) no arquivo de campos. Além dessas opções de linha de comando, o qsderive aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • A ordem na qual os campos derivados surgem no focus de destino é a mesma em que surgem no arquivo de derivações. • Se for especificado um focus de destino, ele compartilha dados subjacentes com o focus de origem. • O XML para o qsderive assume a forma de um elemento <derivations>, contendo elementos <field>, dos quais cada um deles deve conter uma expressão FDL em um elemento <fdl>. Cada elemento <fdl> inclui opcionalmente um atributo de seed integer para especificar a semente de número aleatório para essa expressão FDL. • É possível usar o arquivo XML salvo pelo qsderive usando a opção -savexml como arquivo de derivações. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsderive por meio do assistente Derivar Campos . Exemplo 64 Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus Dado o arquivo de derivações, derivations-purchases.tml, contendo o seguinte: create TransMonth := month(PurchaseDate); create CashRecd := if PaymentMethod = "CA" then Amount else 0; aplicar essas derivações ao focus RetailTransApril.ftr, para criar um novo focus, RetailTransAprilDeriv.ftr, contendo todos os campos do focus RetailTransApril.ftr, mais dois campos derivados: qsderive -derivations derivations-purchases.tml -input RetailTransApril.ftr -output RetailTransAprilDeriv.ftr Aplicar todas as derivações, exceto a primeira, ao focus RetailTransApril.ftr, para criar um novo focus RetailTransAprilDerivAllButFirstOne.ftr, contendo todos os campos do focus RetailTransApril.ftr, mais todos os campos derivados, exceto o primeiro: qsderive -xfields TransMonth -derivations derivations-purchases.tml -input RetailTransApril.ftr -output RetailTransAprilDerivAllButFirstOne.ftr Criar um novo focus,RetailCustAprilScored.ftr, contendo todos os campos do focus RetailCustApril.ftr , mais os campos de pontuação criados no Construtor de Scorecard do Decision Studio e salvos em um arquivo QMML, derivations-score.qmml: qsderive -derivations derivations-score.qmml -input RetailCustApril.ftr -output RetailCustAprilScored.ftr Dado o arquivo de derivações, derivations-purchases.xml, contendo o seguinte: <?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 essas derivações ao focus RetailTransApril.ftr, para criar um novo focus RetailTransAprilDeriv.ftr, contendo todos os campos do focus RetailTransApril.ftr, mais dois campos derivados: qsderive -derivations derivations-purchases.xml -input RetailTransApril.ftr -output RetailTransAprilDeriv.ftr Consulte também Especificações de derivação para o qsderive na página 349 qstrack, na página 70 Guia de referência de comando de compilação de dados e do TML 65 qsmeasure qsmeasure Sinopse qsmeasure -aggregations <arquivo de agregações> [, <arquivo de agregações> ...] -input <focus de origem> -output <focus de destino> [-force] {-keys <campo-chave> [, <campo-chave>] [, <campo-chave>] | -key @<arquivo-chave>} [-statistics <arquivo de estatísticas> [, <arquivo de estatísticas> ...]] [-library <arquivo de funções FDL> [, <arquivo de funções FDL> ...]] [-macro <nome>=<valor> [-macro <nome>=<valor> ...] | -macro @<nome>=<arquivo de macro>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] Descrição: Agrega registros ao focus de origem, para produzir campos no focus de destino de acordo com as definições de campo nos arquivos de agregações. Os arquivos de agregações contêm instruções create ou representações XML correspondentes. Use os campos-chave para identificar grupos de registros para agregação [consulte Usando funções de agregação e as cláusulas where e default na página 152]. Argumentos opcionais Opção Efeito -fields <campo> [, <campo> ...] Considera somente os campos especificados do focus de origem (para otimizar o desempenho do comando, evitando consideração de campos não usados). -fields @<arquivo de campos> Considera somente campos do focus de origem listados (um por linha) no arquivo de campos. -force Verifique A opção de linha de comando -force na página 24. -library <arquivo de funções FDL> [, <arquivo de funções FDL> ...] Inclui definições de função FDL [consulte Funções definidas pelo usuário na página 190]. Expressões em arquivos de agregações podem envolver essas funções. 66 Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus Opção Efeito -macro <nome>=<valor> Verifique A opção de linha de comando -macro na página 24. -macro @<arquivo de macros> Verifique A opção de linha de comando -macro na página 24. -statistics <arquivo de estatísticas> Computa estatísticas para o focus de entrada de acordo com as definições nos arquivos de [, <arquivo de estatísticas> ...] estatísticas que, por sua vez, contêm instruções calculate [consulte Avaliação das estatísticas do focus: a instrução calculate na página 156] ou representações XML correspondentes. Expressões nos arquivos de agregações podem se referir a essas estatísticas. -tags <etiqueta> [, <etiqueta> ...] Considera somente os campos do focus de origem com etiquetas especificadas (para otimizar o desempenho do comando, evitando consideração de campos não usados). -xfields <campo> [, <campo> ...] Considera todos os campos do focus de origem, exceto os campos especificados (para otimizar o desempenho do comando evitando consideração de campos não usados). -xfields @<arquivo de campos> Considera todos os campos do focus de origem, exceto os campos listados (um por linha) no arquivo de campos. -xtags <>tag> [, <etiqueta> ...] Considera todos os campos do focus de origem, exceto os campos com a etiqueta especificada (para otimizar o desempenho do comando evitando consideração de campos não usados). Além dessas opções de linha de comando, o qsmeasure aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • O focus de origem deve ser classificado pelos campos-chave [consulte qssort na página 62]. Porém, o qsmeasure não verifica isso nem emite um aviso ou erro se o focus não estiver corretamente classificado. • O focus de destino contém campos-chave correspondentes aos campos-chave do focus de origem, seguidos pelos campos agregados (na mesma ordem na qual aparecem no arquivo de agregações), seguidos por quaisquer campos derivados (novamente, na mesma ordem na qual aparecem no arquivo de agregações). Para forçar o surgimento de um campo agregado após um campo derivado no focus de destino, é possível usar uma instrução temporary para criar um campo agregado e depois derivar um campo a partir desse. • O focus de destino é independente do focus de origem, ou seja, não compartilha dados subjacentes. Guia de referência de comando de compilação de dados e do TML 67 qsmeasure • Para computar agregações envolvendo os estados entre transações, em vez de apenas os valores nos próprios registros de transações, derive campos intermédios apropriados, usando o qstrack antes de usar o qsmeasure. • O XML para o qsmeasure assume a forma de um elemento <aggregations>, contendo elementos <field context="aggregation">, nos quais cada um deve conter uma expressão TML em um elemento <fdl>. É possível usar um elemento <by> para especificar agrupamentos e um elemento <where> para filtrar os registros de entrada. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsmeasure por meio do assistente Agregar Registros . Exemplos Dado o arquivo de agregações, aggregations-purchases.tml, contendo o seguinte: create numberPurchases := count(); create averagePurchase := mean(Amount); create totalPointsRedeemed := sum(PointsRedeemed); create averagePointsPerPurchase := totalPointsRedeemed / numberPurchases; Aplicar essas agregações e a derivação ao focus RetailTransAprilSorted.ftr para criar o focus RetailAggregationsApril.ftr contendo os campos CustomerID, numberPurchases, averagePurchase, totalPointsRedeemed e averagePointsPerPurchase: qsmeasure -aggregations aggregations-purchases.tml -input RetailTransAprilSorted.ftr -output RetailAggregationsApril.ftr -keys CustomerID Dado o arquivo de funções FDL, fdl-functions-storeSplit.fdl, contendo o seguinte: 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 o arquivo de agregações, aggregations-mostCommon.tml, contendo o seguinte: create mostCommonStore := mode(Store); create averageSpendInStore_ := mean(Amount) by StoreSplitFunction(Store); Aplicar essas agregações ao focus RetailTransAprilSorted.ftr, para criar o focus RetailStoreSplitsApril.ftr, contendo os campos CustomerID, mostCommonStore, averageSpendInStore_0, averageSpendInStore_800, averageSpendInStore_600, averageSpendInStore_700, averageSpendInStore_300, averageSpendInStore_400, 68 Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus averageSpendInStore_100, averageSpendInStore_500, averageSpendInStore_900, e averageSpendInStore_Other: qsmeasure -library fdl-functions-storeSplit.fdl -aggregations aggregations-mostCommon.tml -input RetailTransAprilSorted.ftr -output RetailStoreSplitsApril.ftr -keys CustomerID Se preferir, dado o arquivo de agregações XML aggregations-mostCommon.xml, contendo o seguinte: <?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> aplicar essas agregações ao focus RetailTransAprilSorted.ftr, para criar o focus RetailStoreSplitsApril.ftr, contendo os mesmos campos, como o exemplo acima: qsmeasure -library fdl-functions-storeSplit.fdl -aggregations aggregations-mostCommon.xml -input RetailTransAprilSorted.ftr -output RetailStoreSplitsApril.ftr -keys CustomerID Dados o arquivo de estatísticas, statistics-amount.tml, contendo o seguinte: calculate averageAmount := mean(Amount); e o arquivo de agregações, aggregations-statistic.tml, contendo o seguinte: create averageSpend := mean(Amount); create bigSpender := averageSpend > STATISTIC.averageAmount; aplicar essa agregação e derivação ao focus RetailTransAprilSorted.ftr para criar o focus RetailRankApril1.ftr, contendo os campos CustomerID, averageSpend e bigSpender: qsmeasure -statistics statistics-amount.tml -aggregations aggregations-statistic.tml -input RetailTransAprilSorted.ftr -output RetailRankApril1.ftr -keys CustomerID Se preferir, acelere a agregação importando somente os campos CustomerID e Amount do focus RetailTransAprilSorted.ftr: qsmeasure -fields "CustomerID, Amount" -statistics statistics-amount.tml -aggregations aggregations-statistic.tml -input RetailTransAprilSorted.ftr -output RetailRankApril2.ftr -keys CustomerID Consulte também Especificação de agregação para qsmeasure na página 347 Guia de referência de comando de compilação de dados e do TML 69 qstrack, qstrack, Sinopse qstrack -trackers <arquivo de rastreios> [, <arquivo de rastreios> ...] -input <focus de origem> -output <focus de destino> [-force]-key <campo-chave> | -key @<arquivo-chave>[-statistics <arquivo de estatísticas> [, <arquivo de estatísticas> ...]] [-library <arquivo de funções FDL> [, <arquivo de funções FDL> ...]] [-macro <nome>=<valor> [-macro <nome>=<valor> ...] | -macro @<nome>=<arquivo de macro>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]]-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] Descrição: copia todos os campos (por padrão) do focus de origem para o focus de destino; deriva campos no focus de destino de acordo com as definições de campo no arquivo de rastreios que, por sua vez, contém instruções create ou representações XML correspondentes. Essas definições normalmente envolvem variáveis de estado [consulte Variáveis na página 188]. Use o campo-chave para identificar grupos de registros para rastrear o estado: qstrack reinicia todas as variáveis de estado no início de cada grupo. Argumentos opcionais Opção Efeito -fields <campo> [, <campo> ...] Considera somente os campos especificados do focus de origem (para otimizar o desempenho do comando, evitando consideração de campos não usados). -fields @<arquivo de campos> Considera somente campos do focus de origem listados (um por linha) no arquivo de campos. -force Verifique A opção de linha de comando -force na página 24. -library <arquivo de funções FDL> [, <arquivo de funções FDL> ...] Inclui definições de função FDL [consulte Funções definidas pelo usuário na página 190]. Expressões nos arquivos de rastreios podem envolver essas funções. 70 -macro <nome>=<valor> Verifique A opção de linha de comando -macro na página 24. -macro @<arquivo de macros> Verifique A opção de linha de comando -macro na página 24. Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus Opção Efeito -statistics <arquivo de estatísticas> Computa estatísticas para o focus de entrada de acordo com as definições nos arquivos de [, <arquivo de estatísticas> ...] estatísticas que, por sua vez, contêm instruções calculate [consulte Avaliação das estatísticas do focus: a instrução calculate na página 156] ou representações XML correspondentes. Expressões nos arquivos de rastreio podem se referir a essas estatísticas. -tags <etiqueta> [, <etiqueta> ...] Considera somente os campos do focus de origem com etiquetas especificadas (para otimizar o desempenho do comando, evitando consideração de campos não usados). -xfields <campo> [, <campo> ...] Considera todos os campos do focus de origem, exceto os campos especificados (para otimizar o desempenho do comando evitando consideração de campos não usados). -xfields @<arquivo de campos> Considera todos os campos do focus de origem, exceto os campos listados (um por linha) no arquivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Considera todos os campos do focus de origem, exceto os campos com etiquetas especificadas (para otimizar o desempenho do comando, evitando consideração de campos não usados). Além dessas opções de linha de comando, o qstrack aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • A ordem pela qual os campos derivados surgem no focus de destino é a mesma em que surgem no arquivo de rastreios. • O focus de origem deve ser classificado pelo campo-chave [consulte qssort na página 62]. Porém, o qstrack não verifica isso nem emite um aviso ou erro se o focus não estiver corretamente classificado. • O focus de destino é independente do focus de origem, ou seja, não compartilha dados subjacentes. • O XML para o qstrack assume a forma de um elemento <trackers>, contendo elementos <field context="tracker">, dos quais cada um deles deve conter uma expressão FDL em um elemento <fdl>. Exemplos Dado o arquivo de rastreios, trackers-monthlySpend.tml, contendo o seguinte: create monthlySpend := ( state currentMonth := null; state currentYear := null; Guia de referência de comando de compilação de dados e do TML 71 qsselect 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 essas derivações ao focus RetailTransAprilSorted.ftr para criar um novo focus RetailTransAprilRunningSpend.ftr: qstrack -trackers trackers-monthlySpend.tml -key CustomerID -input RetailTransAprilSorted.ftr -output RetailTransAprilRunningSpend.ftr Se preferir, dado o arquivo de rastreios XML trackers-monthlySpend.xml, contendo o seguinte: <?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 essas derivações ao focus RetailTransAprilSorted.ftr para criar um novo focus RetailTransAprilRunningSpend.ftr: qstrack -trackers trackers-monthlySpend.xml -key CustomerID -input RetailTransAprilSorted.ftr -output RetailTransAprilRunningSpend.ftr Consulte também XML no Portrait Miner na página 340 qsderive na página 63 qsselect Sinopse qsselect -selections <arquivo de seleções> -input <focus de origem> [-subfocus <subfocus>] [-macro <nome>=<valor>[-macro <nome>=<valor> ...] | -macro @<nome>=<arquivo de macro>] 72 Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus [-output <focus de destino>] [-force][-random <semente integer>] [-savexml] [-selection <campo>] Descrição: copia todos os campos (por padrão) do focus de origem para o focus de destino; deriva um campo numérico no focus de destino de acordo com a definição do primeiro campo (por padrão) no arquivo de seleções, que é o arquivo que contém instruções create ou um arquivo XLM correspondente. Por padrão, anexa o campo derivado ao focus de origem. Aplica uma seleção de registro a um novo campo, selecionando somente registros com o valor 1. Argumentos opcionais Opção Efeito -force Verifique A opção de linha de comando -force na página 24. -macro <nome>=<valor> Verifique A opção de linha de comando -macro na página 24. -macro @<arquivo de macros> Verifique A opção de linha de comando -macro na página 24. -output <focus de destino> Em vez de anexar os campos derivados ao focus de origem, copia o focus de origem para o focus de destino e anexa os campos derivados ao focus de destino. -random <semente integer> Usa a semente integer, em vez de 0, para quaisquer funções de números aleatórias do FDL que ocorrem em expressões de derivação. -savexml Além de derivar um ou mais campos e aplicar uma seleção, grava a(s) expressão(ões) de derivação do arquivo de seleções em formatos TML e XML para os arquivos <saída>.tml e <saída>.xml, no mesmo diretório do focus de destino, onde <saída> é o nome de base do focus de destino. -selection <campo> Em vez de usar a definição do primeiro campo no arquivo de seleções, usa a definição do campo especificado. -subfocus <subfocus> Usa o subfocus especificado do focus de origem. Além dessas opções de linha de comando, o qsselect aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Normalmente, as expressões de derivação no arquivo de seleções são aplicações de operadores relacionais ou lógicos, produzindo os valores 1 se "verdadeiro" e 0 para "falso." Nesses casos, o qsselect seleciona esses registros onde a expressão lógica é verdadeira. • Se for especificado um focus de destino, ele compartilha dados subjacentes com o focus de origem. Guia de referência de comando de compilação de dados e do TML 73 qsrenamefields • O XML para o qsselect assume a forma de um elemento <selections>, contendo elementos <field context="selection">, dos quais cada um deles deve conter uma expressão FDL em um elemento <fdl>. • É possível usar o arquivo XML salvo pelo qsselect, usando a opção -savexml, como um arquivo de seleções. Exemplos, Dado o arquivo de seleções selections-sixmonth.tml, contendo o seguinte: create lastSixMonths := countwholemonths(PurchaseDate, #1999/07/01) < 6; aplicar essa seleção ao focus RetailTransApril.ftr: qsselect -selections selections-sixmonth.tml -input RetailTransApril.ftr -output RetailTransApril6Months.ftr Dado o arquivo de seleções selections-random.tml, contendo o seguinte: create random := rndUniform() < 0.1; aplicar essa seleção para selecionar 10% dos registros no focus RetailTransApril.ftr, com uma semente conhecida (12345678), para permitir a seleção da mesma série de registros em aplicações futuras: qsselect -selections selections-random.tml -random 12345678 -input RetailTransApril.ftr -output RetailTransAprilSampleSelect.ftr Se preferir, dado o arquivo de seleções XML, selections-random.xml, contendo o seguinte: <?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> Aplicar essa seleção para selecionar os mesmos 10% dos registros no focus RetailTransApril.ftr, usando a mesma semente: qsselect -selections selections-random.xml -input RetailTransApril.ftr -output RetailTransAprilSampleSelect.ftr Consulte também Especificação de seleção para qsselect na página 350 qsrenamefields Sinopse qsrenamefields -input <focus de origem> 74 Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus {-map <nome antigo>=<nome novo> | -map @<arquivo de mapeamento de entrada>} [{-map <nome antigo>=<nome novo> | -map @<arquivo de mapeamento de entrada>} ...] [-output <focus de destino>] [-force] [-invert] [-mapping <arquivo de mapeamento de saída>] qsrenamefields -input <focus de origem> [-map QSCompliant] [-output <focus de destino>] [-force] [-invert] [-mapping <arquivo de mapeamento de saída>] Descrição: renomeia campos no focus de origem, aplicando mapeamentos <nome antigo>=<nome novo> e mapeamentos em arquivos de mapeamento de entrada. Se preferir, renomeia os campos no focus de origem para equivalentes únicos, compatíveis com Portrait Miner, usando um algoritmo interno . Argumentos opcionais Comando Objetivo -force Verifique A opção de linha de comando -force na página 24. -invert Inverte o sentido dos mapeamentos do campo-nome. -mapping <arquivo de mapeamento de saída> Cria um arquivo de mapeamento XML, descrevendo o mapeamento real usado para passar de antigos para novos nomes de campos. É possível usar esse arquivo como arquivo de mapeamento de saída para qsrenamefields. Em conjunto com a opção -invert, é possível usar então um mapeamento de campo-nome inverso mesmo em situações onde o mapeamento campo-nome original foi algorítmico (e não necessariamente um-para-um). -output <focus de destino> Em vez de renomear diretamente os campos no focus de origem, copia o focus de origem para o focus de destino e renomeia os campos no focus de destino. Além dessas opções de linha de comando, o qsrenamefields aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Guia de referência de comando de compilação de dados e do TML 75 qsrenamefields Observação: • Omitir o argumento -map na totalidade tem o mesmo efeito que especificar -map QSCompliant. • Um arquivo de mapeamento de entrada está no formato XML ou contém pares <nome antigo>=<nome novo> em linhas sucessivas do arquivo. • Se for usado mais de um argumento -map, o qsrenamefields aplica os mapeamentos campo-nome na mesma ordem em que aparecem na linha de comando. • Se for tentado renomear campos para que mais de um campo tenha o mesmo nome, o qsrenamefields avisa o usuário e não faz nada. • Se for especificado um focus de destino, ele compartilha dados subjacentes com o focus de origem. • Não é possível renomear um campo mais de uma vez em uma única invocação de um comando. • Se o focus de origem inclui um subfocus, o qsrenamefields renomeia os campos ao longo de toda a hierarquia dos subfocus. • O XML para qsrenamefields assume a forma de um elemento <mappingset> contendo elementos <map>, nos quais cada um deve conter um elemento <name> e <alias>. • Dado um focus produzido por qsimportdb, que pode incluir nomes de campo não compatíveis com Portrait Miner, é possível usar o qsrenamefields (com -map QSCompliant) para converter o focus para uma forma que possa ser usada no Decision Studio ou com outros comandos construtores de dados. • É possível acessar algumas das funcionalidades do qsrenamefields por meio do Visualizador de Dados, no Decision Studio , ou a caixa de diálogo Renomear campos disponível no Portrait Miner . Exemplos Criar um focus, RetailCustAprilRenamed1.ftr, com o campo StartDate renomeado como Inicializado, Age renomeado como CurrentAge e Gender renomeado como Sex: qsrenamefields -map StartDate=Initialized -map Age=CurrentAge -map Gender=Sex -input RetailCustApril.ftr -output RetailCustAprilRenamed1.ftr Se preferir, dado o arquivo de mapeamento de saída, mapping-file.txt, com os seguintes conteúdos: StartDate=Initialized Age=CurrentAge Gender=Sex aplique esse arquivo de mapeamento para criar o focus RetailCustAprilRenamed2.ftr, com o campo StartDate renomeado como Initialized, Age renomeado como CurrentAge e Gender renomeado como Sex: qsrenamefields -map @mapping-file.txt -input RetailCustApril.ftr -output RetailCustAprilRenamed2.ftr ou, alternativamente, dado o arquivo de mapeamento de entrada XML mapping-file.xml, com os seguintes conteúdos: <?xml version="1.0" encoding="UTF-8"?> <mappingset xmlns="http://www.quadstone.com/xml"> <map> <name>StartDate</name> <alias>Initialized</alias> 76 Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus </map> <map> <name>Age</name> <alias>CurrentAge</alias> </map> <map> <name>Gender</name> <alias>Sex</alias> </map> </mappingset> aplique esse arquivo de mapeamento para criar o focus RetailCustAprilRenamed2.ftr, com o campo StartDate renomeado como Inicializado, Age renomeado como CurrentAge e Gender renomeado como Sex: qsrenamefields -map @mapping-file.xml -input RetailCustApril.ftr -output RetailCustAprilRenamed2.ftr Criar um focus,RetailCustAprilQSCompliant.ftr, como nomes de campos compatíveis com Portrait Miner: qsrenamefields -input RetailCustApril.ftr -output RetailCustAprilQSCompliant.ftr Consulte também Especificação de mapeamento do campo do nome para qsrenamefields na página 353 qsexportmetadata Sinopse qsexportmetadata -input <focus de origem> [-output <arquivo de metadados>] Descrição: Exporta metadados a partir de um focus de origem, incluindo histórico do focus, binnings, comentários, derivações, interpretações, seleções de registros, estrutura de subfocus e subfocus padrão. Por padrão, grava a informação para uma saída padrão. Argumentos opcionais Opção Efeito -output <arquivo de metadados> Cria esse arquivo de metadados em vez de gravar para uma saída padrão. Além dessa opção de linha de comando, o qsexportmetadata aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • A saída de metadados por qsexportmetadata está em um formato de arquivo baseado em XML [consulte Especificações de metadados para qsimportmetadata na página 341]. • Usando o Portrait Miner, é possível acessar a funcionalidade de qsexportmetadata por meio da caixa de diálogo Exportar metadados . Guia de referência de comando de compilação de dados e do TML 77 qsimportmetadata Exemplos Criar um arquivo XML novo RetailTransApril.xml, que contenha os metadados do focus RetailTransApril.ftr: qsexportmetadata -input RetailTransApril.ftr -output RetailTransApril.xml Consulte também qsimportmetadata na página 78 qsimportmetadata Sinopse qsimportmetadata -input <focus de origem> -metadata <arquivo de metadados>[-output <focus de destino>] [-force] [-details <tipo> [, <tipo> ...] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos>] [-dryrun] [-warn] Descrição: Importa metadados, incluindo binnings, comentários, derivações, interpretações, seleções de registros, estrutura de subfocus e subfocus padrão do arquivo de metadados do focus de origem. Argumentos opcionais 78 Opção Efeito -details <tipo> [, <tipo> ...] Importa os tipos especificados de metadados, podendo incluir binnings, comentários, derivações, histórico, interpretações, seleções, inicialização (subfocus padrão) e subfocus (estrutura do subfocus). Interpretações categóricas são classificadas como binnings, não como interpretações. Na falta dessa opção, todos os tipos de metadados, exceto histórico, são importados. -dryrun Não importa metadados mas exibe informação dos metadados que teriam sido importados. -fields <campo> [, <campo> ...] Em vez de importar metadados de campo de todos os campos, importa metadados somente dos campos especificados. -fields @<arquivo de campos> Em vez de importar metadados de campo de todos os campos, importa metadados somente dos campos listados (um por linha) no arquivo de campos. -force Verifique A opção de linha de comando -force na página 24. Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus Opção Efeito -output <focus de destino> Em vez de aplicar diretamente os metadados ao focus de origem, copia o focus de origem para o focus de destino e aplica os metadados ao focus de destino. -warn Em vez de abortar a operação se a importação de algum metadado falhar, emite um aviso e tenta importar os demais metadados. -xfields <campo> [, <campo> ...] Importa metadados de campo de todos os campos, exceto dos campos especificados. -xfields @<arquivo de campos> Importa metadados de campo de todos os campos exceto dos campos listados (um por linha) no arquivo de campos. Além dessas opções de linha de comando, o qsimportmetadata aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se for importado o histórico e o arquivo de metadados incluir metadados do histórico não vazios, o qsimportmetadata substitui os metadados do histórico no focus; se os metadados do histórico não estiverem presentes ou estiverem em branco, o qsimportmetadata não substitui os metadados do histórico no focus. • Se for especificado um focus de destino, ele compartilha dados subjacentes com o focus de origem. • O arquivo de metadados usa um formato de arquivo baseado em XML [consulte Especificações de metadados para qsimportmetadata na página 341]. Metadados XML para o qsimportmetadata assume a forma de um elemento <metadada>, contendo elementos <focus>, que podem conter elementos <comment>, <history>, <focus> aninhado e <field>. Os elementos <field> podem conter elementos <comment>, <binning>, <recordselection> e <fdl>. • Se for importado um binning categórico para um campo sem uma interpretação categórica, o qsimportmetadata vai interpretar primeiro o campo como categórico, criando categorias base a partir dos valores no campo (e um binning chamado "nó sem nome"). Se as categorias base no binning importado se referem a valores não referidos pelas categorias base do campo, o qsimportmetadata os adiciona como categorias base. Por fim, adiciona as categorias (se houver) do binning importado diretamente abaixo das categorias base do campo (a não ser que o binning importado tenha o mesmo conjunto de categorias base que o campo, nesse caso, o qsimportmetadata omite o primeiro nível do binning importado, adicionando os outros níveis diretamente abaixo das categorias base do campo). • Se for importado um binning categórico para um campo com uma interpretação categórica, e o binning importado contiver pelo menos um elemento <category>, o qsimportmetadata limpa a interpretação categórica no campo (excluindo todos os binnings categóricos no campo) antes de importar o binning. (Se o binning importado não contiver elementos <category>, o qsimportmetadata não faz nada.) Guia de referência de comando de compilação de dados e do TML 79 qsimportmetadata • Se for importada uma estrutura de subfocus, o subfocus recém-criado herda automaticamente os atributos de campo (como candidatos à análise e binnings) do subfocus primário. Isso ocorre mesmo se não forem especificados explicitamente os atributos na definição do subfocus, pois os atributos são definidos no processo de aplicação da estrutura do subfocus. • Um subfocus definido em um arquivo de metadados toma precedência sobre um subfocus de mesmo nome no arquivo de origem, por isso, quaisquer metadados existentes associados a esse subfocus serão substituídos. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsimportmetadata por meio da caixa de diálogo Importar metadados para focus . Exemplos Dado o arquivo de metados do focus metadata-fieldfocus.xml, com os seguintes conteúdos: <?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> <field name="Gender"> <comment>Imported from CUSTINFO:SEX, mapping 1="M" and 2="F".</comment> </field> </focus> </metadata> importar esse arquivo de metadados para criar um focus RetailCustAprilCommented2.ftr, contendo comentários de campo e um comentário de focus: qsimportmetadata -metadata metadata-fieldfocus.xml -input RetailCustApril.ftr -output RetailCustAprilCommented2.ftr Se preferir, importe o mesmo arquivo de metadados para criar um focus RetailCustAprilCommented3.ftr, com um comentário de campo somente no campo Age: qsimportmetadata -fields Age -metadata metadata-fieldfocus.xml -input RetailCustApril.ftr -output RetailCustAprilCommented3.ftr Dado o arquivo de metados do focus metadata-focushtml.xml, com os seguintes conteúdos: <?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> 80 Portrait Miner 7.0A Capítulo 5: Comandos para processar os focus </focus> </metadata> importar esse arquivo de metados para criar um focus RetailCustAprilCommented4.ftr, contendo um comentário de focus com formatação HTML: qsimportmetadata -metadata metadata-focushtml.xml -input RetailCustApril.ftr -output RetailCustAprilCommented4.ftr Dado o arquivo de metados do focus metadata-catbinning1.xml, com os seguintes conteúdos: <?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"/> <category name="Separated" value="5"/> </category> </categories> </categorical> </binning> </field> </metadata> importar esse arquivo de metados para criar um focus Lion1.ftr, onde MaritalStatus tem um binning categórico com dois níveis (um dos quais dá nome às categorias base e o outro mescla três categorias): qsimportmetadata -metadata metadata-catbinning1.xml -input Lion.ftr -output Lion1.ftr Dado o arquivo de metados do focus metadata-catbinning2.xml, com os seguintes conteúdos: <?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> Guia de referência de comando de compilação de dados e do TML 81 qsupdate importar esse arquivo de metadados para criar um focus Lion2.ftr, no qual SRVOverallSatisfaction tem um binning categórico com uma ordenação particular de categorias indo de "Muito Insatisfeito" até "Muito Satisfeito:" qsimportmetadata -metadata metadata-catbinning2.xml -input Lion1.ftr -output Lion2.ftr Consulte também qsexportmetadata na página 77 qsupdate Sinopse qsupdate -from <focus do modelo> -to <focus de destino> [-force] Descrição: Aplicar os metadados do focus no focus modelo para o focus de destino, incluindo definições de subfocus e campos derivados e também quaisquer interpretações de campo, binnings e seleções de registros. Argumentos opcionais Opção Efeito -force Verifique A opção de linha de comando -force na página 24. Além dessa opção de linha de comando, o qsupdate aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • O focus de destino não pode ter interpretações, binnings ou seleções de registros de campo. • Se o focus modelo e o focus de destino tiverem nomes de campo ou tipos de dados diferentes, o qsupdate pode não ser capaz de copiar alguns aspectos dos metadados do focus do modelo. • Esse comando de complicação de dados não é recomendado: prefira o qsexportmetadata e o qsimportmetadata. Exemplo Aplicar derivações, interpretações, binnings e seleções de registros de pré-processamento RetailCustApril.ftr para o focus RetailCustMay.ftr recém-importado: qslink -from RetailCustMay.ftr -to RetailCustMayUpdated.ftr qsupdate -from RetailCustApril.ftr -to RetailCustMayUpdated.ftr 82 Portrait Miner 7.0A Capítulo Comandos para combinar os focus Nesta seção: • Sobre combinar focus . . . . . . . . . . . . . . . . . . . . . . . . . . . .84 • qsjoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84 • qsmerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87 6 Sobre combinar focus Sobre combinar focus O Portrait Miner fornece duas formas de combinar os campos de vários focus para criar um novo focus, sendo a primeira ("junção de focus") uma variante da junção esquerda. É possível usar a junção de focus no Portrait Miner ou por meio do comando de compilação de dados qsjoin do Portrait Miner. O segundo método usa o Decision Studio para importar campos de um focus em uma variante da junção esquerda de duas tabelas. Também é possível mesclar os registros de vários focus, no Portrait Miner ou por meio do comando de compilação de dados qsmerge do Portrait Miner. Consulte também dblookup na página 316 qsjoin Sinopse qsjoin -input <focus primário> [-subfocus <subfocus>] {-keys <campo-chave> [, <campo-chave>] [, <campo-chave>] | -key @<arquivo-chave>} [-output <focus de destino>] [-force] [-equalnulls] [-importmeta] [-onetoone] [-match <prefixo>] [-unmatched <prefixo>] -join <focus secundário> [ -subfocus <subfocus>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-join <focus secundário> [ -subfocus <subfocus>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] ...] Descrição: Junta campos do focus secundário com o focus primário, coincidindo registros usando os campos-chave. Por padrão, junta todos os campos não chave do focus secundário. A não ser que seja usada a opção -onetoone, o qsjoin realizará efetivamente uma série de junções externas à esquerda (o focus primário está na tabela esquerda), incorporando os campos a partir de cada um dos focus secundários por vez. Os valores-chave em um registro no focus primário identificam de forma única um registro correspondente em cada focus secundário (onde houver um). Argumentos opcionais 84 Portrait Miner 7.0A Capítulo 6: Comandos para combinar os focus Opção Efeito -equalnulls Ao coincidir registros, trate o null value em um campo-chave como um valor normal (ou seja, considere todas as ocorrências do valor nulo como iguais um ao outro, mas distintos de outros valores). -fields <campo> [, <campo> ...] Em vez de juntar todos os campos do focus secundário, junte apenas os campos especificados. -fields @<arquivo de campos> Em vez de juntar todos os campos do focus secundário, junte apenas os campos listados (um por linha) no arquivo de campos. -force Verifique A opção de linha de comando -force na página 24. Isso também afeta o focus criado com a opção -unmatched. -importmeta Importa metadados de campo dos focus secundários. -match <prefixo> Para cada focus secundário, cria um campo integer adicional no focus de saída, contendo o valor 1 para registros que incluem dados do focus secundário e o valor 0 para todos os outros registros. Use o prefixo fornecido juntamente com o nome do focus secundário para nomear o campo. -onetoone Em vez de realizar uma junção externa à esquerda, tente realizar uma correspondência um-para-um dos registros com as mesmas chaves. -output <focus de destino> Em vez de juntar campos ao focus primário, copie o focus primário para o focus de destino, depois junte os campos ao focus de destino. -subfocus <subfocus> Use o subfocus especificado do focus primário ou secundário mencionado pela última vez na linha de comando (usando -input ou -join). -tags <etiqueta> [, <etiqueta> ...] Em vez de juntar todos os campos do focus secundário, junte os campos com etiquetas especificadas. -unmatched <prefixo> Para cada focus secundário, crie um focus de saída alternativo, preservando esses registros do focus secundário cujos campos-chave não correspondem aos registros no focus primário. Use o prefixo fornecido juntamente com o nome do focus secundário para nomear o focus de saída alternativo. Guia de referência de comando de compilação de dados e do TML 85 qsjoin Opção Efeito -xfields <campo> [, <campo> ...] Junta todos os campos no focus, exceto os campos especificados. -xfields @<arquivo de campos> Junta todos os campos no focus, exceto os campos listados (um por linha) no arquivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Junta todos os campos no focus, exceto os campos com as etiquetas especificadas. Além dessas opções de linha de comando, o qsjoin aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Para cada campo-chave nomeado, os campos desse nome no focus primário e secundário devem ser compatíveis, ou seja, todos os campos de strings, todos os campos de datas ou todos os campos numéricos. • Os focus primário e secundário devem ser classificados pelos campos-chave [consulte qssort na página 62]. Se o focus não for classificado apropriadamente, o qsjoin falha e mostra uma mensagem de erro para esse efeito. • Para uma junção externa à esquerda (o tipo de junção padrão para o qsjoin), não podem existir dois registros em um focus secundário com as mesmas chaves. • Para uma junção externa à esquerda (o tipo de junção padrão para o qsjoin), se um focus secundário não contiver registros correspondentes ao registro fornecido no focus primário, o qsjoin usa um null record. • Para uma junção externa à esquerda (o tipo de junção padrão para o qsjoin), se mais de um registro no focus primário tiver o mesmo conjunto de chaves, serão anexadas cópias dos registros correspondentes do focus secundário (se houver) a cada um desses registros. • Se for usada a opção -onetoone, para cada conjunto de registros no focus primário que compartilham uma dada combinação de valores de campo-chave, o qsjoin tenta juntar os campos de registros sucessivos em um focus secundário que compartilha a mesma combinação de valores de campo-chave, de tal forma que os registros são comparados um-para-um. Se, para uma chave fornecida, houver menos registros em um focus secundário que em um focus primário, o qsjoin usa null records no lugar de registros em falta no focus secundário. Se, para uma chave fornecida, houver mais registros em um focus secundário que em um focus primário, o qsjoin trata os registros excedentes no focus secundário como não combinados. Se for usada a opção -unmatched, o qsjoin preserva esses registros em um focus de saída alternativo. • Se a operação de junção resultar em nomes de campo duplicados, o qsjoin renomeia os campos necessários, adicionando sufixos numéricos. • Se for especificado um focus de destino, ele compartilha dados subjacentes com o focus primário (mas é independente do focus secundário). • Ao coincidir registros, o qsjoin trata normalmente cada ocorrência do valor nulo num campo-chave como um valor novo e distinto: um registro com o valor nulo em um campo-chave nunca corresponde a um registro em outro focus. É possível evitar esse comportamento usando a opção -equalnulls. 86 Portrait Miner 7.0A Capítulo 6: Comandos para combinar os focus • Para compatibilidade com versões anteriores, se for especificado somente um focus secundário e usada a opção -match ou -unmatched, o nome do focus secundário não será usado para nomear o campo coincidente ou o focus de saída alternativo. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsjoin por meio do assistente Juntar Campos ao Focus . Exemplos Criar um focus, RetailAprilAnalysis1.ftr, combinando registros do focus RetailCustApril.ftr e RetailAggregationsApril.ftr: qsjoin -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -keys CustomerID -output RetailAprilAnalysis1.ftr Se preferir, adicione somente os campos numberPurchases e TotalAmount do focus RetailAggregationsApril.ftr: qsjoin -fields numberPurchases,totalAmount -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -keys CustomerID -output RetailAprilAnalysis2.ftr Criar o focus RetailAprilAnalysis3.ftr, combinando registros do focus RetailCustApril.ftr, RetailAggregationsApril.ftr e RetailAggregationsMay.ftr: qsjoin -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -join RetailAggregationsMay.ftr -keys CustomerID -output RetailAprilAnalysis3.ftr Repetir a parte acima e escrever quaisquer registros de transação não combinada para o focus unmatchedRetailAggregationsApril.ftr ou unmatchedRetailAggregationsMay.ftr: qsjoin -unmatched unmatched -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -join RetailAggregationsMay.ftr -keys CustomerID -output RetailAprilAnalysis4.ftr Repetir a parte acima, juntando somente um subconjunto dos campos do focus secundário: qsjoin -unmatched unmatched -input RetailCustApril.ftr -join RetailAggregationsApril.ftr -fields numberPurchasesApr,totalAmountApr -join RetailAggregationsMay.ftr -fields numberPurchasesMay,totalAmountMay -keys CustomerID -output RetailAprilAnalysis5.ftr Consulte também qsmerge na página 87 qsmerge Sinopse qsmerge -input <focus primário> [-subfocus <subfocus>] Guia de referência de comando de compilação de dados e do TML 87 qsmerge {-keys <campo-chave> [, <campo-chave>] [, <campo-chave>] | -key @<arquivo-chave>} [-equalnulls] -output <focus de destino> [-force] [-nodups] -merge <focus secundário> [ -subfocus <subfocus>][-merge <focus secundário> [ -subfocus <subfocus>] ...] Descrição Mescla registros do focus primário e secundário, intercalando-os para criar o <focus de destino>, de forma que permaneça classificado pelos campos-chave [consulte qssort na página 62]. Argumentos opcionais Opção Efeito -equalnulls Ao coincidir registros, trate o valor null em um campo-chave como um valor normal (ou seja, considere todas as ocorrências do valor nulo como iguais umas às outras, mas distintas de outros valores). -force Verifique A opção de linha de comando -force na página 24. -nodups Evita a duplicação de valores do campo-chave: Se dois ou mais registros compartilharem valores de campo-chave, retenha o primeiro registro para conter tal registro (tratando os focus pela ordem: primário, secundário mencionado em primeiro lugar, etc.); descarte os demais registros com os mesmos valores de campo-chave. -subfocus <subfocus> Use o subfocus especificado do focus primário ou secundário mencionado na linha de comando (usando -input ou -join). Além dessas opções de linha de comando, o qsmerge aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Os focus primário e secundário devem ser classificados pelos campos-chave [consulte qssort na página 62]. Se o focus não for classificado apropriadamente, o qsjoin falha e mostra uma mensagem de erro para esse efeito. • campos correspondentes nos focus primário e secundário (identificados por nome) devem ser do mesmo tipo, mas não precisam estar organizados pela mesma ordem. • O focus de destino contém o mesmo conjunto de campos que o focus primário, organizado na mesma ordem. Se um focus secundário contiver campos que não existem no focus primário, o qsmerge vai ignorá-los. Se o focus primário contiver campos que não existem no focus secundário, o qsmerge usa o null value no lugar dos valores em falta no focus secundário. 88 Portrait Miner 7.0A Capítulo 6: Comandos para combinar os focus • Se dois ou mais registros compartilham os mesmos valores de campo-chave, os do primeiro focus aparecem primeiro no focus de destino, seguidos pelos outros em cada focus secundário. A não ser que seja usada a opção -nodups, a operação de mesclagem não remove quaisquer registros com chaves duplicadas. • Usando o mesmo focus duas vezes na linha de comando — como argumento para -input e para -merge — e usando a opção -nodups, é possível usar o qsmerge para remover registros com valores de chave duplicados de um focus. • O focus de destino é independente do focus primário e secundário, ou seja, não compartilha dados subjacentes. • Ao ordenar registros ou procurar chaves duplicadas, o qsmerge trata normalmente o valor nulo como um valor novo e distinto: um registro com o valor nulo em um campo-chave nunca corresponde a um registro em outro focus. É possível evitar esse comportamento usando a opção -equalnulls. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsmerge por meio da caixa de diálogo Mesclar registros . • Se o focus mesclado contiver tipos de dados legados, os tipos legados são convertidos para o tipo de dados mais apropriados no focus de saída. Se a conversão falhar porque o tipo de dados não tem armazenamento suficiente, em vez de truncar o conteúdo o campo conterá o valor nulo. Nesse caso, uma mensagem de resumo exibirá o campo afetado e o número de entradas a completar. • Para mesclar dois focus, é necessário que os campos contenham tipos de dados compatíveis. Exemplos Criar um focus, RetailTransAprilMayJune.ftr, contendo todos os registros nos focus RetailTransAprilSorted.ftr, RetailTransMaySorted.ftr e RetailTransJuneSorted.ftr: qsmerge -input RetailTransAprilSorted.ftr -merge RetailTransMaySorted.ftr -merge RetailTransJuneSorted.ftr -keys CustomerID -output RetailTransAprilMayJune.ftr Se preferir, inclua somente registros do focus RetailTransAprilSorted.ftr cujos valores-chave também aparecem no focus RetailTransMaySorted.ftr: qsmerge -nodups -input RetailTransAprilSorted.ftr -merge RetailTransMaySorted.ftr -keys CustomerID -output RetailTransAprilMayNodups.ftr Consulte também qsjoin na página 84 Guia de referência de comando de compilação de dados e do TML 89 Capítulo Comandos para gerenciar o focus Nesta seção: • • • • • • qscopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92 qslink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93 qsmove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93 qsremove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 qsarchive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 qsunzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96 7 qscopy qscopy Sinopse qscopy -from <focus de origem> {-to <focus de destino> | -to <diretório>} [-force] Descrição: Copia o focus de origem para o focus de destino ou para um focus no diretório especificado (preservando o nome do focus de origem). Copia os dados subjacentes para que o novo focus seja independente de outros focus. Argumentos opcionais Opção Efeito -force Verifique A opção de linha de comando -force na página 24. Além dessas opções de linha de comando, o qscopy aceita opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Devido à potencial interdependência dos focus, não se deve tentar copiar um focus usando utilitários padrão do sistema operacional. Em vez disso, deve-se usar sempre qscopy ou qslink (ou Portrait Miner). Observação: • Se for tentar copiar um focus sobre um focus existente, o qscopy avisa o usuário e não faz nada. • Para criar uma cópia associada de um focus, na qual a cópia compartilha os dados subjacentes com o focus original, use o qslink. • Para criar uma cópia de um focus ou de um subconjunto de um focus, não incluindo quaisquer metadados , use qsimportfocus. • Também é possível acessar a funcionalidade do qscopy por meio do Portrait Miner . Exemplo Criar um novo focus, RetailArchiveMay.ftr, arquivando os resultados da sessão de análise de Maio no focus RetailAnalysisMay.ftr: qscopy -from RetailAnalysisMay.ftr -to RetailArchiveMay.ftr Consulte também qsmove na página 93 qsremove na página 94 92 Portrait Miner 7.0A Capítulo 7: Comandos para gerenciar o focus qslink Sinopse qslink -from <focus de origem> {-to <focus de destino> | -to <diretório>} [-force] Descrição: Copia o focus de origem para o focus de destino ou para um focus no diretório especificado (preservando o nome do focus de origem). Compartilha os dados subjacentes com o focus original. (O novo focus é dependente do focus original.) Argumentos opcionais Opção Efeito -force Verifique A opção de linha de comando -force na página 24. Além dessas opções de linha de comando, qslink aceita opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se for tentar copiar um focus sobre um focus existente, o qslink avisa o usuário e não faz nada. • Para criar uma cópia independente de um focus, na qual a cópia não compartilha os dados subjacentes com o focus original, use qscopy. • Também é possível acessar a funcionalidade do qslink por meio do Portrait Miner . Exemplo Criar um focus RetailLoyaltyProjectMay.ftr, que compartilha os dados subjacentes com o focus RetailAnalysisMay.ftr: qslink -from RetailAnalysisMay.ftr -to RetailLoyaltyProjectMay.ftr Consulte também qsimportfocus na página 51 qsmove na página 93 qsremove na página 94 qsmove Sinopse qsmove -from <focus de origem> -to {,<focus de destino> | <diretório>,} Guia de referência de comando de compilação de dados e do TML 93 qsremove Descrição: Renomeia o focus de origem para o focus de destino ou move o focus de origem para o diretório especificado, considerando possíveis dependências de dados. Argumentos opcionais Além dos argumentos necessários, o qscopy aceita as opções comuns para todos os comandos construtores de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se for tentar renomear ou mover um focus sobre um focus existente, o qsmove avisa o usuário e não faz nada. • Também é possível acessar a funcionalidade do qsmove por meio do Portrait Miner . Devido à potencial interdependência do focus, não se deve tentar renomear ou mover um focus usando utilitários padrão do sistema operacional. Em vez disso, deve-se usar sempre o qsmove (ou o Portrait Miner). Exemplos Renomear o focus RetailTransAprilSorted.ftr para RetailTransAprilSort.ftr: qsmove -from RetailTransAprilSorted.ftr -to RetailTransAprilSort.ftr Mover o focus RetailArchiveMay.ftr para o diretório Retail: qsmove -from RetailArchiveMay.ftr -to Retail Consulte também qscopy na página 92 qslink na página 93 qsremove na página 94 qsremove Sinopse qsremove -focus <arquivo de focus> -focus <arquivo de focus> [-force] [-recursive] Descrição: Exclui um ou mais arquivos de focus, considerando possíveis dependências de dados. Argumentos opcionais 94 Opção Efeito -force Ignora quaisquer erros causados pela falha na atualização de links com os focus relacionados. Portrait Miner 7.0A Capítulo 7: Comandos para gerenciar o focus Opção Efeito -recursive Exclui o focus e todos os focus dependentes. Além dessas opções de linha de comando, o qsremove aceita opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Devido à potencial interdependência do focus, não se deve tentar excluir um focus usando utilitários padrão do sistema operacional. Em vez disso, deve-se sempre usar o qsremove (ou o Portrait Miner). Observação: • Se houver uma dependência circular na cadeia ou o primário da cadeia do focus não for gravável, será exibido um erro. Nesse caso, é necessário usar -force e -recursive para excluir o focus. • Se for usado mais de um argumento -focus e o qsremove não conseguir excluir um dos focus, ele continuará excluindo focus subsequentes (mas produz uma mensagem de erro e devolve um estado de saída diferente de zero). • Não será possível remover um focus com qsremove sem permissão de gravação para o arquivo de focus .ftr. • Após remover um focus usando qsremove, pode haver um arquivo .ftr de backup. É possível excluir esse arquivo em segurança, como faria com qualquer arquivo. • Também é possível acessar a funcionalidade do qsremove por meio do Portrait Miner . Exemplos Excluir o focus RetailTransApril6Months.ftr e seus dependentes: qsremove -focus RetailTransApril6Months.ftr Excluir dois focus RetailTransAprilCA.ftr e RetailTransApril2Customers.ftr: qsremove -focus RetailTransAprilCA.ftr -focus RetailTransApril2Customers.ftr Consulte também qscopy na página 92 qslink na página 93 qsmove na página 93 qsarchive Sinopse qsarchive -input <focus ou pasta> [, -input <focus ou pasta> ...]-output <arquivo compactado> Descrição: Cria um arquivo compactado a partir de uma lista de focus ou pastas. Guia de referência de comando de compilação de dados e do TML 95 qsunzip Argumentos opcionais: Além dos argumentos necessários, o qsarchive aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se for criado um arquivo compactado a partir de uma pasta que contém focus ligados a dados fora da pasta, os dados externos são copiados para o arquivo. • É possível acessar a maior parte das funcionalidades do comando de compilação de dados qsarchive usando a caixa de diálogo Arquivo, no Portrait Miner. Exemplo Criar um arquivo FirstQuarter.zip que compartilhe dados subjacentes com os focus January.ftr, February.ftr e March.ftr: qsarchive -input January.ftr -input February.ftr -input March.ftr -output FirstQuarter.zip Consulte também qsunzip na página 96 qsunzip Sinopse qsunzip -input <arquivo compactado> [-output <diretório de saída>] [-overwrite] Descrição: Extrai arquivos e pastas de um arquivo compactado. Argumentos opcionais Opção Efeito -output <diretório de saída> Extrai para um diretório alternativo ao local onde o arquivo compactado está localizado. Se não for fornecida uma opção -output, os arquivos e pastas serão extraídos para o diretório atual. -overwrite Substitui arquivos e pastas se for extraído para uma localização com o mesmo conteúdo do arquivo zip. Além dessas opções de linha de comando, o qsunzip aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se não for usada a opção -overwrite e extrair para uma localização que contenha os mesmos arquivos e pastas de origem, a extração irá falhar. • É possível acessar a maior parte das funcionalidades do comando de compilação de dados qsunzip usando a caixa de diálogo Extrair, no Portrait Miner 96 Portrait Miner 7.0A Capítulo 7: Comandos para gerenciar o focus Exemplo Extrair de um arquivo compactado firstquarter.zip para o mesmo local como firstquarter.zip: qsunzip -input firstquarter.zip Consulte também qsarchive na página 95 Guia de referência de comando de compilação de dados e do TML 97 Capítulo Comandos para produzir relatórios Nesta seção: • • • • • • • • • qssettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100 qsaudit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100 qsdescribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104 qsdescribestat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105 qshtmlunpack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 qsdtsnapshot, qsscsnapshot . . . . . . . . . . . . . . . . . . . . .107 qsxt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110 qsinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 qsdescribelicense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 8 qssettings qssettings Sinopse qssettings [<propriedade>=<valor> ...] Descrição: Define o valor de cada propriedade listada, para controlar aspectos da saída dos comandos geradores de relatório qsaudit, qsdtsnapshot e qsscsnapshot. É possível definir valores das seguintes propriedades: • DateFormat, com 0 corresponde ao europeu, 1 corresponde ao americano e 2 corresponde ao YMD • NumDecimalPlaces • StripTrailingZeroes • ThousandSeparators • TwelveHour Argumentos opcionais Além dos argumentos necessários, qssettings aceita as opções comuns a todos os comandos construtores de dados [consulte Opções padrão de linha de comando na página 21]. Observação: O comando qssettings cria ou modifica o arquivo settings.xml em seu diretório de configuração especifico de usuário do Portrait Miner. Use esse arquivo em conjunto com qsaudit, qsdtsnapshot ou qsscsnapshot especificando a opção Opções padrão de linha de comando na página 21-settings [consulte ]. Exemplo Criar um arquivo de definições para exibir datas no formato de data AMD, formato de 12 horas e números com zeros à direita, para quatro casas e um separador de milhares especifico localmente: qssettings DateFormat=2 TwelveHour=true StripTrailingZeroes=false NumDecimalPlaces=4 ThousandSeparators=true Consulte também Formatos de data na página 55 qsaudit na página 100 qsdtsnapshot, qsscsnapshot na página 107 qsaudit Sinopse qsaudit [-generate Full] -input <focus> [-subfocus <subfocus>] [-reference <relatório HTML arquivado> | -reference <relatório XML arquivado>] -output <relatório HTML arquivado> -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] 100 Portrait Miner 7.0A Capítulo 8: Comandos para produzir relatórios [-records <expressão FDL> | -records @<arquivo FDL>] [-targets <campo> [, <campo> ...] | -targets @<arquivo de campos> | -notarget] [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] [-paginate] [-nopartition] -partitionfield <campo> qsaudit -generate XML -input <focus> [-subfocus <subfocus>] [-reference <relatório HTML arquivado> | -reference <relatório XML arquivado>] -output <relatório XML arquivado> -fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] [-records <expressão FDL> | -records @<arquivo FDL>] [-targets <campo> [, <campo> ...] | -targets @<arquivo de campos> | -notarget] [-overwrite] [-nopartition] [-partitionfield <campo>] qsaudit -generate HTML {-input <relatório HTML arquivado> | -input <relatório XML arquivado>} -output <relatório HTML arquivado> [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] [-paginate] Descrição: Cria um Perfil e relatório de Auditoria no focus especificado ou um relatório de comparação descrevendo as diferenças entre o focus especificado e o focus descrito em um relatório de referência com a opção -reference). Por padrão, audita todos os campos no focus, em relação ao objetivo do focus, se houver um. Este é um processo de duas fases: primeiro o comando gera um arquivo XML intermediário (compactado em um arquivo .qsxml), depois, a partir desse arquivo intermediário, é criado o relatório final no formato HTML (compactado em um arquivo .qshtml). Se preferir, crie somente o arquivo .qsxml intermediário — ou crie um arquivo .qshtml a partir de um arquivo .qshtml ou .qsxml existente. Para descompactar arquivos .qshtml e .qsxml, para visualizar ou reutilizar fora do Portrait Miner, use o qshtmlunpack. Guia de referência de comando de compilação de dados e do TML 101 qsaudit Argumentos opcionais Opção Efeito -fields <campo> [, <campo> ...] Audita somente os campos especificados (exceto campos excluídos usando -xfields). -fields @<arquivo de campos> Audita somente os campos listados (um por linha) no arquivo de campos. -generate HTML Cria um relatório HTML de um relatório XML ou HTML. -generate Full Cria um relatório HTML diretamente (padrão se não for especificada uma opção -generate). -generate XML Cria um relatório XML. -htmlimages largepng Inclui bitmaps PNG e imagens SVG otimizados para impressora e tela. -htmlimages none Não inclui nenhuma imagem. -htmlimages smallpng Incluiu bitmaps PNG e imagens SVG otimizadas para tela (padrão, se não for especificada uma opção -htmlimages). -htmlimages svg Inclui somente imagens SVG. -nopartition Cria um Perfil e Auditoria sem elevação, ignorando quaisquer interpretações de partição nesse focus. -notarget Não audita campos no focus em relação a quaisquer campos de destino, mesmo se o focus tiver um objetivo. -overwrite Substitui qualquer relatório existente. Caso contrário, se já há um relatório com o mesmo nome, o qsaudit avisa o usuário e não faz nada. -paginate Cria uma página HTML individual para cada campo auditado. -partitionfield <campo> Usa o campo especificado como campo de partição. -records <expressão FDL> Reporta somente nos registros onde a expressão FDL numérica é diferente de zero ("verdadeira"). -records @<arquivo FDL> Reporta somente nos registros para quais a expressão FDL no arquivo especificado é diferente de zero ("verdadeira"). -reference <relatório HTML arquivado> Usa o relatório HTML criado arquivado anteriormente como relatório de referência e cria um relatório de comparação. 102 Portrait Miner 7.0A Capítulo 8: Comandos para produzir relatórios Opção Efeito -subfocus <subfocus> Usa o subfocus especificado do focus. -tags <etiqueta> [, <etiqueta> ...] Audita somente os campos com etiquetas especificadas (exceto quaisquer campos excluídos usando -xtags). -targets <campo> [, <campo> ...] Audita campos no focus relacionados com os campos de destino especificados, em vez de o objetivo do focus. -targets @<arquivo de campos> Audita campos no focus relacionados com os campos de destino listados (um por linha) no arquivo de campos. -xfields <campo> [, <campo> ...] Não audita os campos especificados. -xfields @<arquivo de campos> Não audita os campos listados (um por linha) no arquivo de campos. -xtags <etiqueta> [, <etiqueta> ...] Não audita os campos com as etiquetas especificadas. Além dessas opções de linha de comando, qsaudit aceita a opção -settings, assim como opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Por padrão, um relatório de comparação inclui os mesmos campos do relatório de referência. Se escolher campos explicitamente para incluir no relatório de comparação (usando a opção -fields), esses são adicionados aos campos cujo perfil foi criado anteriormente. • Um relatório de comparação usa os mesmos campos de destino como no relatório de referência. Quaisquer campos de destino especificados explicitamente são ignorados. • Estão disponíveis opções de formatação de relatório adicionais nas preferências de Auditorias e Instantâneos (consulte Ajuda Portrait Miner). • Se não incluir um objetivo e uma opção -target, qsaudit não irá conseguir auditar o focus. • Usando Portrait Miner, é possível acessar a maior parte das funcionalidades do qsaudit por meio da caixa de diálogo Criar Perfil e Auditoria . Exemplos Criar um novo Perfil e Auditoria RetailCustApril.qshtml do focus RetailCustApril.ftr: qsaudit -input RetailCustApril.ftr -output RetailCustApril.qshtml Criar um novo Perfil e Auditoria RetailCustMay.qshtml do focus RetailCustMay.ftr, auditar todos os campos por Age: qsaudit -targets Age -input RetailCustMay.ftr -output RetailCustMay.qshtml Guia de referência de comando de compilação de dados e do TML 103 qsdescribe Substitua isso para criar um Perfil e Auditoria no qual cada auditoria de campo ocorre em uma página HTML separada: qsaudit -paginate -targets Age -overwrite -input RetailCustMay.ftr -output RetailCustMay.qshtml Criar um Perfil e Auditoria RetailCustAprilnoimages.qshtml sem imagens, do focus RetailCustApril.ftr, somente para os campos StartDate, Age e Gender: qsaudit -fields "StartDate, Age, Gender" -htmlimages none -input RetailCustApril.ftr -output RetailCustAprilnoimages.qshtml Recriar a saída HTML, com uma auditoria de um campo por página HTML (sem recriar dados da auditoria subjacente): qsaudit -generate HTML -paginate -input RetailCustApril.qshtml -output RetailCustAprilpaginate.qshtml Criar um relatório de comparação RetailCustMayApril.qshtml do focus RetailCustMay.ftr em comparação com o relatório de referência RetailCustApril.qshtml: qsaudit -reference RetailCustApril.qshtml -input RetailCustMay.ftr -output RetailCustMayApril.qshtml Consulte também XML no Portrait Miner na página 340 qsdescribe na página 104 qsdtsnapshot, qsscsnapshot na página 107 qssettings na página 100 qsdescribe Sinopse qsdescribe -input <focus de origem> [-subfocus <subfocus>] [-output <arquivo de relatório>] [-fields [-detail]] Descrição: Exibe informações do resumo sobre o focus no formato texto simples, incluindo o número de campos e registros e o histórico do focus. Argumentos opcionais 104 Opção Efeito -detail Reporta informações mais detalhadas sobre os campos no focus, incluindo estatística dos campos, expressões de derivação e sementes para campos derivados. -fields Reporta informações sobre cada um dos campos no focus. Portrait Miner 7.0A Capítulo 8: Comandos para produzir relatórios Opção Efeito -output <arquivo de relatório> Grava o relatório no arquivo especificado e não na saída padrão. -subfocus <subfocus> Usa o subfocus especificado do focus de origem. Além dessas opções de linha de comando, o qsbuild aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Por padrão, o qsdescribe informa toda a hierarquia do subfocus dentro de um focus. Se for usada a opção -subfocus, o qsdescribe informa somente o subfocus especificado. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsdescribe por meio da caixa de diálogo Exibir Informações do Focus . Exemplos Reportar o número de campos, número de registros e histórico do focus RetailCustApril.ftr: qsdescribe -input RetailCustApril.ftr Além disso, reportar os nomes e tipos de campos: qsdescribe -fields -input RetailCustApril.ftr Por fim, reportar estatísticas de campo, seleções, comentários e derivações nos campos: qsdescribe -detail -fields -input RetailCustApril.ftr Consulte também qsaudit na página 100 qssettings na página 100 qsdescribestat Sinopse qsdescribestat -input <conjunto de dados de origem> [-output <arquivo de relatório>] [-type <tipo de conjunto de dados>] [-detail] Descrição: Exibe uma lista de nomes de campos no conjunto de dados de origem de terceiros, em formato de texto simples. Conjuntos de dados SAS, SPSS e Excel estão entre os suportados (consulte http://support.quadstone.com/info/requirements/ para obter uma lista detalhada). Argumentos opcionais Guia de referência de comando de compilação de dados e do TML 105 qshtmlunpack Opção Efeito -detail Mostra os tipos de dados dos campos juntamente com seus nomes. -output <arquivo de relatório> Grava o relatório no arquivo especificado e não na saída padrão. -type <tipo de conjunto de dados> Interpreta o conjunto de dados de origem como o tipo de conjunto de dados especificado, substituindo a interpretação padrão (dependendo da extensão do nome do arquivo). Tipos de conjunto de dados válidos incluem sas, spss e excel; para ver uma lista completa, use a opção -help. Além dessas opções de linha de comando, o qsdescribestat aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Exemplos Reportar os nomes dos arquivos do conjunto de dados SAS RetailCustApril.sas7bdat: qsdescribestat -input RetailCustApril.sas7bdat Além disso, reportar os tipos de campo: qsdescribestat -detail -input RetailCustApril.sas7bdat Consulte também qsexportstat na página 49 qsimportstat na página 48 qshtmlunpack Sinopse qshtmlunpack <relatório arquivado> <relatorio de destino> [<Nome do arquivo HTML>] Descrição:Descompacta um relatório gerado pelo Portrait Miner na forma de um arquivo .qshtml ou .qsxml, criando o diretório de saída especificado para conter os componentes do relatório. No caso de um relatório HTML arquivado, o próprio arquivo HTML (dentro do diretório de saída) é nomeado qsreport.html, por padrão. Argumentos opcionais 106 Portrait Miner 7.0A Capítulo 8: Comandos para produzir relatórios Opção Efeito <Nome do arquivo HTML> Use esse nome de arquivo para o arquivo HTML em um relatório HTML descompactado, em vez do qsreport.html. Ao descompactar um relatório XML arquivado, qshtmlunpack ignora este argumento. Observação: Usando Portrait Miner, é possível acessar a maior parte das funcionalidades do qshtmlunpack usando a opção do botão direito do mouse Descompactar para Pasta. Exemplo Descompactar o arquivo RetailCustApril.qshtml como um Perfil e Auditoria HTML RetailCustApril.html no subdiretório www: qshtmlunpack RetailCustApril.qshtml www RetailCustApril.html Consulte também qsaudit na página 100 qsdtsnapshot, qsscsnapshot na página 107 qsdtsnapshot, qsscsnapshot Sinopse {qsdtsnapshot -input <árvore de decisão> | qsscsnapshot -input <scorecard>} [-generate Full] -output <relatório HTML arquivado> [-focus <focus> [-subfocus<subfocus>]] [-audit modeled | -audit all | -audit none] [-description <arquivo de texto>] [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] {qsdtsnapshot -input <árvore de decisão> | qsscsnapshot -input <scorecard>} -generate XML -output <relatório XML arquivado> [-focus <focus> [-subfocus<subfocus>]] [-audit modeled | -audit all | -audit none] Guia de referência de comando de compilação de dados e do TML 107 qsdtsnapshot, qsscsnapshot [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] {qsdtsnapshot | qsscsnapshot} -generate HTML {-input <relatório HTML arquivado> | -input<relatório XML arquivado>} -output <relatório HTML arquivado> [-description <arquivo de texto> [-overwrite] [-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages none] Descrição: Cria um Modelo Instantâneo da árvore de decisão especificada (arquivo .qsdt) ou scorecard (arquivo .qssc). Por padrão, audita todos os campos usados no modelo. Este é um processo de duas fases: primeiro o comando gera um arquivo XML intermediário (compactado em um arquivo .qsxml), depois, a partir desse arquivo intermediário, é criado o relatório final no formato HTML (compactado em um arquivo .qshtml). Se preferir, crie somente o arquivo .qsxml intermediário — ou crie um arquivo .qshtml a partir de um arquivo .qshtml ou .qsxml existente. Para descompactar arquivos .qshtml e .qsxml, para visualizar ou reutilizar fora do Portrait Miner, use o qshtmlunpack. Argumentos opcionais 108 Opção Efeito -audit all Audita todos os campos no focus. -audit modeled Audita os campos usados no modelo (padrão se não especificar uma opção -audit). -audit none Não audita nenhum campo. -description <arquivo de texto> Inclui os conteúdos desse arquivo de texto como uma descrição do modelo na seção "Metadados Fornecidos pelo Usuário" do relatório. -focus <focus> Reporta no modelo aplicado ao focus especificado, em vez do focus usado para construir o modelo. -generate HTML Cria um relatório HTML de um relatório XML ou HTML. -generate Full Cria um relatório HTML diretamente (padrão se não for especificada uma opção -generate). -generate XML Cria um relatório XML. Portrait Miner 7.0A Capítulo 8: Comandos para produzir relatórios Opção Efeito -htmlimages largepng Inclui bitmaps PNG e imagens SVG otimizados para impressora e tela. -htmlimages none Não inclui nenhuma imagem. -htmlimages smallpng Incluiu bitmaps PNG e imagens SVG otimizadas para tela (padrão, se não for especificada uma opção -htmlimages). -htmlimages svg Inclui somente imagens SVG. -overwrite Substitui qualquer relatório existente. Caso contrário, se já há um relatório com o mesmo nome, o qsdtsnapshot/qsscsnapshot avisa o usuário e não faz nada. -subfocus <subfocus> Usa o subfocus especificado do focus. Além dessas opções de linha de comando, o qsdtsnapshot e qsscsnapshot aceitam a opção -settings, assim como opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se não for usada a opção -focus, o focus usado para construir o modelo ainda deve existir. • Estão disponíveis opções adicionais de formatação de relatório nas preferências de Auditorias e Instantâneos (consulte Ajuda Portrait Miner). • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsdtsnapshot e qsscsnapshot por meio da caixa de diálogo Instantâneo da Árvore de Decisão ou do Instantâneo do Scorecard . Exemplos Criar um Modelo Instantâneo do arquivo da árvore de decisão early-adopter-modelApril.qsdt, compilado no focus RetailCustApril.ftr e aplicado ao mesmo focus: qsdtsnapshot -input early-adopter-modelApril.qsdt -output early-adopter-modelApril.qshtml Aplique esse modelo ao focus RetailCustMay.ftr, mas agora auditando todos os campos, em vez de somente os envolvidos na definição do modelo: qsdtsnapshot -focus RetailCustMay.ftr -audit all -input early-adopter-modelApril.qsdt -output early-adopter-modelMay.qshtml Consulte também XML no Portrait Miner na página 340 qsaudit na página 100 qssettings na página 100 Guia de referência de comando de compilação de dados e do TML 109 qsxt qsxt Sinopse qsxt -focus <focus> [-subfocus <subfocus>] [-spec <arquivo da tabela de referência cruzada>] [-comparable] [-output <arquivo da tabela de referência cruzada>] [-description <arquivo de texto>] Descrição: Aplica uma especificação de tabela de referência cruzada (fornecida por padrão na entrada padrão) para o focus especificado, para criar uma nova tabela de referência cruzada (por padrão na saída padrão). Argumentos opcionais Opção Efeito -comparable Ao relevante, use binnings da parte do resultado da tabela de referência cruzada fornecida, em vez de a parte da especificação. -description <arquivo de texto> Inclui os conteúdos desse arquivo de texto como uma descrição da tabela de referência cruzada. -output <arquivo da tabela de referência cruzada> Cria esse arquivo da tabela de referência cruzada em vez de gravar em uma saída padrão. -spec <arquivo da tabela de referência Usa esse arquivo da tabela de referência cruzada em vez de ler a partir da entrada padrão. cruzada> -subfocus <subfocus> Usa o subfocus especificado do focus. Além dessas opções de linha de comando, o qsxt aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Na tabela de referência cruzada de saída, o qsxt bina cada campo usando um dos seguintes (em ordem decrescente de preferência): um binning para o campo na especificação de tabela de referência cruzada (ou parte do resultado se usar a opção -comparable); um binning para o campo no focus fornecido; os parâmetros padrão de binning, como configurado pelas preferências de binning (consulte Ajuda do Portrait Miner). • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsxt por meio de uma caixa de diálogo Aplicar tabela de referência cruzada . Exemplos 110 Portrait Miner 7.0A Capítulo 8: Comandos para produzir relatórios Criar uma nova tabela de referência cruzada, ageGenderMay.qstv, a partir do focus RetailCustMay.ftr, usando o arquivo de especificação de tabela de referência cruzada do ageGenderApril.qstv (gerado a partir do Decision Studio): qsxt -focus RetailCustMay.ftr -spec ageGenderApril.qstv -output ageGenderMay.qstv Se preferir, use o binning contido no arquivo da tabela de referência cruzada ageGenderApril.qstv para criar o resultado ageGenderMay-binbyApril.qstv: qsxt -comparable -focus RetailCustMay.ftr -spec ageGenderApril.qstv -output ageGenderMay-binbyApril.qstv Consulte também Especificações da tabela de referência cruzada para qsxt na página 351 qsinfo Sinopse qsinfo -input <focus de origem> [-generate HTML | -generate XML] [-output <arquivo de relatório>] Descrição: Exibe informações sobre localizações e tamanhos de arquivos que constituem o focus de origem, incluindo quaisquer arquivos de dados compartilhados com outros focus. Exibe os relacionamentos do focus de origem com outros focus (listando ambos os focus que dependem dele e os focus dos quais depende). Por padrão, grava o relatório na saída padrão, em um formato de arquivo baseado em XML. Argumentos opcionais Opção Efeito -generate HTML Cria o relatório no formato HTML. -generate XML Cria o relatório num formato de arquivo baseado em XML (padrão, se não for especificada uma opção -generate). -output <arquivo de relatório> Grava o relatório no arquivo especificado e não na saída padrão. Além dessas opções de linha de comando, o qsinfo aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Um focus é armazenado em disco como um arquivo .ftr (o "arquivo de focus") juntamente com um conjunto de arquivos de dados e outros arquivos em duas pastas, com nomes com as extensões .rdx ("Raw Data eXtract") e .xtr ("eXTRa"). Um novo focus criado por meio da cópia de um focus existente [consulte qscopy na página 92] ou pela importação de dados de outro tipo de conjunto de dados é independente de outros focus. Por outro lado, um focus que é salvo no Decision Studio Guia de referência de comando de compilação de dados e do TML 111 qsdescribelicense com novo nome ou um que seja criado por meio de uma cópia vinculada [consulte qslink na página 93] é dependente das pastas de dados de outros focus. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsinfo por meio da caixa de diálogo Exibir Propriedades do Focus. . Exemplo Criar um novo relatório HTML das propriedades do focus RetailCustApril.html, a partir do focus RetailCustApril.ftr: qsinfo -input RetailAprilAnalysis.ftr -generate HTML -output RetailAprilAnalysis.html Consulte também XML no Portrait Miner na página 340 qsdescribelicense Sinopse qsdescribelicense [-input <arquivo de licença>] [-output <arquivo de relatório>] Descrição:Exibe um relatório sobre a licença do Portrait Miner no formato texto simples. Argumentos opcionais Opção Efeito -input <arquivo de licença> Relata sobre o arquivo de licença especificado, em vez de a licença instalada. -output <arquivo de relatório> Grava o relatório no arquivo especificado e não na saída padrão. Além dessas opções de linha de comando, o qsdescribelicense aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: O relatório pode incluir os seguintes componentes: • • • • • o nome do titular da licença o endereço de IP ou subrede para a qual a licença é válida o tamanho máximo do focus para o qual a licença é válida data inicial e de expiração da licença uma lista de componentes licenciados do Portrait Miner, com possíveis substituições por componentes para o endereço de IP/subrede, tamanho máximo do focus e datas de validade Exemplo 112 Portrait Miner 7.0A Capítulo 8: Comandos para produzir relatórios Mostrar chaves de licença no arquivo atual de licença do Portrait Miner: qsdescribelicense Guia de referência de comando de compilação de dados e do TML 113 Capítulo Comandos para compilar modelos Nesta seção: • • • • • • Sobre o Assistente do Scorecard . . . . . . . . . . . . . . . . . .116 qsscorecardwizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117 qsdecisiontree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123 qsscorecard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 Sobre o Assistente de Regra de Associação . . . . . . . . .125 qsruleminer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127 9 Sobre o Assistente do Scorecard Sobre o Assistente do Scorecard O Assistente do Scorecard automatiza a modelagem do scorecard, usando boas práticas metodológicas: realizando binning otimizado, em seguida, redução variável e, por fim, compilando uma sequência de modelos sobre dados de teste e treinamento para estabelecer o melhor "tamanho de modelo". A metodologia de modelagem inclui as seguintes fases. Metodologia teste/treinamento: Parte dos dados de origem é usada para o treinamento e outra parte para teste: essa divisão pode ser gerada aleatoriamente ou usando um campo indicador binário designado. Binning otimizado: Os dados de treinamento são usados para selecionar um binning para cada candidato de análise que maximiza sua capacidade preditiva univariável contra o objetivo. Para campos não categóricos, o assistente do binning otimizado é usado repetidamente para selecionar o melhor binning. O número de bins é aumentado até o número de "pontos de mudança" na área do valor médio objetivo do bin exceder um limite configurável (sendo um "ponto de mudança" uma alteração de sinal na inclinação do gráfico). Intuitivamente, isso garante que o perfil do valor médio objetivo, como uma função de cada candidato de análise, é relativamente regular, com poucos altos e baixos. Para campos categóricos, as categorias onde o valor médio objetivo não é significativamente diferente da média geral são mescladas. É usada uma diferença padrão do teste de médias [consulte significance na página 175], com uma correção de Bonferroni aplicada com base no número total de categorias, c, que aparecem para o campo. Assim, todas as categorias em que o nível de confiança é são mescladas (com um limite de significância configurável). Durante essa fase, os campos com correlação anormalmente elevada para o objetivo são excluídos da análise (com uma mensagem de aviso). É também emitido um aviso para campos onde cada bin individual contenha um pequeno número de registros. Ambos os limites são configuráveis. Redução variável: a fase da redução variável reduz o número de candidatos de análise (preditores independentes) daqueles inicialmente marcados para um conjunto de n menor, para diminuir o tempo de execução da fase final de "dimensionamento correto". O processo divide os candidatos à análise em grupos de até 2n campos e compila um scorecard (usando os dados de treinamento) em cada grupo, descartando os piores campos por meio de uma exclusão por etapas até que reste somente os melhores n campos do grupo. Repetindo esse procedimento, acaba-se por identificar os melhores n campos gerais. Dimensionamento correto: a fase de dimensionamento correto seleciona o scorecard que melhor equilibra a complexidade (número de preditores) e a capacidade generalizante (como medido pelo conjunto de teste de desempenho). Os dados de treinamento são usados para compilar uma sequência de scorecards com os primeiros que contêm todos os candidatos de análise e cada modelo subsequente, excluindo o pior preditor. O desempenho de cada modelo é avaliado com base nos dados de teste, com o melhor tamanho de modelo selecionado usando um critério configurável. Como fase final, as ponderações no modelo selecionado são reajustadas com base em todos os dados (ou seja, de teste e de treinamento) para aumentar a precisão. Todos os modelos provisórios podem ser salvos em conjunto com os modelos finais, se desejado. Resultados: São gerados vários resultados (opcionalmente), incluindo: 116 Portrait Miner 7.0A Capítulo 9: Comandos para compilar modelos • Um relatório HTML resumindo a forma como a metodologia foi aplicada, incluindo os parâmetros de entrada e os links para o log de execução detalhado. Isso inclui uma tabela de dados de desempenho que pode ser facilmente apresentada no Excel. • O modelo final recomendado (nos formatos .qssc e QMML ). • Um relatório do Modelo Instantâneo para o modelo recomendado. • O conjunto de dados final, incluindo os candidatos de análise selecionados, binnings otimizados e predições de modelo. Os conjuntos de dados intermediários também podem ser salvos, se desejado, contendo os metadados gerados pela metodologia até aquele ponto. Eles são normalmente úteis para fazer busca detalhada e explorar as decisões tomadas durante o processo. Consulte também qsscorecardwizard na página 117 qsscorecardwizard Sinopse qsscorecardwizard <arquivo de parâmetros> Descrição: Compilar um scorecard em um focus especificado usando um arquivo de parâmetros. Observação: Também é possível acessar a funcionalidade do comando de compilação de dados qsscorecardwizard, usando a caixa de diálogo do assistente Scorecard no Portrait Miner. Parâmetros de modelagem: O processo de modelagem executado pelo qsscorecardwizard é controlado pelo arquivo de parâmetros que for especificado como argumento de linha de comando. Por exemplo, com um arquivo chamado parameters.ini contendo: [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 o comando qsscorecardwizard parameters.ini criaria um modelo de scorecard DirectBank_auto.qssc em conjunto com um novo focus DirectBank_auto_3rightsized.ftr e um relatório modelo DirectBank.xml. O arquivo de parâmetros tem um formato similar a um arquivo .ini do Windows: • Cada seção é indicada por um cabeçalho de seção fechado entre colchetes, por ex., [globals]. Os quatro nomes de seção válidos estão listados abaixo. • Os parâmetros em cada seção são definidos especificando o nome do parâmetro, o sinal igual e o valor do parâmetro, por ex., maxBins = 20. Guia de referência de comando de compilação de dados e do TML 117 qsscorecardwizard • Os nomes dos parâmetros não são sensíveis a maiúsculas e minúsculas e são ignorados espaços em branco à direita e à esquerda em cada linha. • Linhas em branco e as linhas que começam com os caracteres de comentário # ou ; (em conjunto com espaços em branco à esquerda) são ignoradas. Existem valores padrão para vários parâmetros, que podem ser modificados com base no usuário ou em todo o site, mas esses valores são sempre substituídos por parâmetros especificados no arquivo .ini de linha de comando. Especificar um valor de parâmetro em qualquer uma das seguintes localizações substitui qualquer definição em uma localização prévia (onde <pmhome> é o diretório de instalação do Portrait Miner): • As definições necessárias, por padrão, estão em <pmhome>/ext/scorecardwizard/defaults.ini. • Definições opcionais de todo o site em <pmhome>/ext/scorecardwizard/scorecardwizard.ini • Definições opcionais pelo usuário em <pmhome>/shared/users/<user>@<domain>/scorecardwizard.ini • O arquivo de parâmetro necessário especificado na linha de comando. Parâmetros na seção [globais] Parâmetro Padrão Descrição inputFocus (necessário) A localização do focus de entrada. objectiveField (nenhum) O nome do campo objetivo. Necessário, a menos que o focus contenha uma interpretação objetiva. Se definido, esta definição substitui qualquer interpretação de focus. useFields (nenhum) Uma lista separada por vírgulas dos campos de candidatos à análise. Se definido, qualquer interpretação de candidato à análise no focus é ignorada. ignoreFields (nenhum) Uma lista, separada por vírgula, de campos a excluir da lista de candidatos à análise. testTrainingField (nenhum) O campo a usar como indicador de teste-treinamento. O campo deve ser um campo numérico binário, com 1 indicando dados de treinamento e 0 indicando teste. Se não definido, será gerada automaticamente uma divisão. trainingProportion 0.5 A proporção de registros (entre 0 e 1) para selecionar para treinamento, a menos que seja especificado testTrainingField. randomSeed 118 (nenhum) A semente aleatória a usar. Se não definido, será gerada automaticamente uma semente aleatória. É possível replicar uma execução anterior, usando a semente informada por essa execução (na seção "parâmetros"). Portrait Miner 7.0A Capítulo 9: Comandos para compilar modelos Parâmetro Padrão Descrição verbose false Defina como verdadeira (true) para emitir informações de diagnóstico adicionais ao log de console. Esse detalhe extra está sempre registrado no arquivo de log; consulte logFile. logFile (automático) A localização para o processo de execução do log. Se não for especificado, o log é criado em <parâmetros>-<AAAA-mm-dd-HH-MM-SS>.log em conjunto com o arquivo de parâmetro <parâmetros>.ini especificado na linha de comando. (Ao ser acionado por meio do Portrait Miner, o log é criado em <pmhome>/shared/logs/qsscorecardwizard-<user>-<AAAA-mm-dd-HH-MM-SS>.log.) xmlReport (automático) A localização para criar o relatório de resumo XML. Por padrão, o relatório é salvo em <parâmetros>_report.xml em conjunto com o arquivo de parâmetros <parâmetros>.ini especificado na linha de comando. Parâmetros na seção [binning otimizado] Parâmetro Padrão Descrição doOptimizedBinning true Defina como falso (false) para ignorar o binning otimizado. minBinSize 0 O número mínimo de registros que devem aparecer em um bin não nulo durante o binning otimizado de campos não categóricos. Qualquer bin (incluindo bins nulos e categóricos) com menos registros irá disparar um aviso no relatório final. maxBins 20 O número máximo de bins que deve ser criado para campos não categóricos. O número de bins selecionado pode ser inferior, com base na restrição "ponto de mudança" (consulte abaixo). maxTurningPoints 2 O número máximo de mudanças de sinal na diferença da média do campo objetivo entre bins consecutivos (excluindo nulo, não classificado). Um valor 0 força o binning final a ser monótono na média do campo objetivo. Um Guia de referência de comando de compilação de dados e do TML 119 qsscorecardwizard Parâmetro Padrão Descrição valor maxBins (ou superior) remove essa restrição. Normalmente, um valor de 1 ou 2 é razoável. maxQuality 95 A porcentagem máxima "verossímil" de Gini (ou R^2). Campos com potência preditiva acima desse limite serão excluídos da análise. Note que essa verificação sempre é realizada (mesmo quando o binning otimizado está desativado), a menos que seja especificado um valor de 100. pValue 0.001 O nível de significância que determina se um bin categórico tem uma taxa de resposta significativamente diferente da população global. O valor é especificado em uma escala de 0 a 1, normalmente próximo a 0. Note que também é aplicada uma correção de Bonferroni. binnedFocus (nenhum) A localização para salvar o focus provisório após o binning otimizado, se desejado. Parâmetros na seção [redução variável] Parâmetro Padrão Descrição doVariableReduction true Defina para falso (false) para ignorar a redução variável (e usar todos os candidatos à análise na fase de dimensionamento correto de modelo). maxVariables 100 O número máximo de candidatos à análise a permitir no modelo final (normalmente 20 — 100). reducedFocus (nenhum) A localização para salvar o focus provisório após a redução variável, se desejado. Parâmetros na seção [desenvolvimento de modelo] 120 Portrait Miner 7.0A Capítulo 9: Comandos para compilar modelos Parâmetro Padrão Descrição doModelDevelopment true Defina para falso (false) para ignorar o dimensionamento correto de modelo. modelType resposta Especifica o tipo de modelo para fins de rotulamento. Valores válidos são: response, risk, churn, satisfaction, dissatisfaction. regressionMethod Logística Especifica se os modelos de scorecard devem apresentar regressão logística ou uma aproximação linear (mais rápida). regressionLevel campo Especifica uma estimativa de parâmetro ao nível do field ou bin no scorecard. A ponderação ao nível do bin pode ser mais precisa em dados de treinamento, mas é provável que seja mais adequada para dados de teste. rightSizeCriteria min Especifica o critério de dimensionamento correto usado para selecionar o melhor número de campos. Os valores válidos são: BIC equivalente a Critério de Informação Bayesiano, AIC equivalente a Critério de Informação de Akaike (normalmente mais fraco que o BIC no sentido de permitir mais campos), delta para diminuição de retornos em medida de qualidade para resultados binários (consulte minQualityIncreasePct abaixo), min. ou max. para o mínimo (ou máximo) de todos os critérios recomendados (excluindo delta, no caso contínuo). minQualityIncreasePct 0.5 Esse é um parâmetro usado para a forma delta de rightSizeCriteria: o modelo Guia de referência de comando de compilação de dados e do TML 121 qsscorecardwizard Parâmetro Padrão Descrição recomendado é o que apresenta mais campos, de forma que o pior campo adiciona pelo menos a quantia especificada para a porcentagem do conjunto de teste Gini (ou R^2). saveIntermediateModels false Defina para verdadeiro (true) para salvar modelos intermediários como arquivos .qssc e .qmml. Caso contrário, somente a recomendação final será salva. predictionField (automático) Especifica o nome do campo de predição para o modelo final. Se não for definido, será usado apenas um nome de campo baseado no tipo de modelo, por ex., assistentescorecard__response. finalFocus (nenhum) A localização para salvar o focus que contém os candidatos à análise finais e o modelo recomendado, se desejado. finalModel (nenhum) O tronco de localização para salvar o arquivo modelo de scorecard final (nos formatos .qssc e .qmml), se desejado. runModelSnapshot true Se o finalModel e o finalFocus forem especificados e a opção for verdadeira, será criado um Modelo Instantâneo (arquivo.qshtml file) em conjunto com os arquivos finalModel. Consulte também Sobre o Assistente do Scorecard na página 116 122 Portrait Miner 7.0A Capítulo 9: Comandos para compilar modelos qsdecisiontree Sinopse qsdecisiontree -input <focus de origem> [-subfocus<subfocus>] -build <especificação da compilação da árvore de decisão> -result <relatório de compilação da árvore de decisão> [-output <focus de destino>] [-force] Descrição: Usa uma especificação da compilação da árvore de decisão, para compilar uma árvore de decisão no focus especificado e cria um novo relatório de compilação da árvore de decisão (contendo estatísticas da árvore de decisão, uma pontuação de predição da árvore de decisão e uma tabela de referência cruzada da calibração), em um formato de arquivo baseado em XML. Argumentos opcionais Opção Efeito -force Verifique A opção de linha de comando -force na página 24. -output <focus de destino> Cria esse focus, contendo um campo derivado adicional que aplica a nova pontuação de predição da árvore de decisão ao focus de entrada. -subfocus <subfocus> Usa o subfocus especificado do focus. Além dessas opções de linha de comando, o qsdecisiontree aceita opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Exemplo:Dada a especificação da compilação da árvore de decisão, decisiontree-specification.xml, contendo o seguinte: <?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> use essa especificação para criar um relatório de compilação da árvore de decisão decisiontree-report.xml e criar um novo focus RetailCustAprilPredictedAge.ftr, contendo o campo derivado da predição da árvore de decisãoPredictedAge: qsdecisiontree -build decisiontree-specification.xml -input RetailCustApril.ftr -result decisiontree-report.xml -output RetailCustAprilPredictedAge.ftr Guia de referência de comando de compilação de dados e do TML 123 qsscorecard Consulte também Especificação da compilação da árvore de decisão para qsdecisiontree na página 354 qsscorecard na página 124 qsscorecard Sinopse qsscorecard -input <focus de origem> [-subfocus <subfocus>] -build <especificação da compilação do scorecard> -result <relatório de compilação do scorecard> [-output <focus de destino>] [-force] Descrição: Usa uma especificação de compilação do scorecard para compilar um scorecard no focus especificado e cria um novo relatório de compilação do scorecard (contendo suas estatísticas, uma pontuação de predição do scorecard e uma tabela de referência cruzada de calibração) em um formato de arquivo baseado em XML. Argumentos opcionais Opção Efeito -force Verifique A opção de linha de comando -force na página 24. -output <focus de destino> Cria esse focus, contendo um campo derivado adicional que aplica a nova pontuação de predição do scorecard ao focus de entrada. -subfocus <subfocus> Usa o subfocus especificado do focus. Além dessas opções de linha de comando, o qsscorecard aceita opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Para um objetivo binário, o qsscorecard usa regressão logística; para um objetivo contínuo, usa regressão linear. Exemplo Dada a especificação da compilação do scorecard, scorecard-specification.xml, contendo o seguinte: <?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> 124 Portrait Miner 7.0A Capítulo 9: Comandos para compilar modelos <field name="PredictedAge"/> </resultfield> </specification> </scorecard> use essa especificação para criar um relatório de compilação do scorecard scorecard-report.xml e criar um novo focus RetailCustAprilPredictedAge.ftr, contendo o campo derivado da predição do scorecard PredictedAge: qsscorecard -build scorecard-specification.xml -input RetailCustApril.ftr -result scorecard-report.xml -output RetailCustAprilPredictedAge.ftr Consulte também qsdecisiontree na página 123 Especificação da compilação do scorecard parna árvore de decisãoa qsscorecard na página 357 Sobre o Assistente de Regra de Associação O Assistente de Regra de Associação automatiza a descoberta de regras de associação e sequenciação. Isso normalmente é usado para explorar transações detalhadas do cliente, cesta ou dados do evento, para aplicações como: Análise de compras do consumidor: A análise da cesta de compras identifica combinações de produtos que aparecerem (ou não aparecem) juntos com maior frequência em uma transação de compra (cesta de itens). Melhor produto seguinte: O melhor produto seguinte determina a sequência mais comum em que os produtos ou serviços são comprados; por exemplo, é mais provável que os clientes do banco abram contas de investimento/comerciais após abrirem uma conta poupança com taxa de juro elevada. Análise de impacto do marketing: A análise de impacto do marketing identifica padrões de comunicações de marketing mais prováveis de ocorrerem antes de uma compra Preparação de Dados: O Assistente de Regra de Associação executa diretamente com transações ou dados do evento armazenados em um conjunto de dados de um focus, se beneficiando do acesso aos dados de alto desempenho do Portrait Miner. • Para a análise da Cesta de Compras, é necessário usar um conjunto de dados de nível do item que contenha um registro por item. O conjunto de dados deve incluir um campo identificador de cesta que agrupe itens na mesma cesta e também um campo identificador de produto (binado e categórico) que indica o nome ou código do produto para cada item. O conjunto de dados deve ser classificado pelo campo-chave identificador da cesta. • Para a análise do Produto Seguinte, é necessário escolher um conjunto de dados com um registro por produto ou serviço. O conjunto de dados deve conter um identificar de cesta — muitas vezes o identificador do cliente — que agrupe os produtos, juntamente com o identificador do produto (em bin e categórico) e um carimbo de data/hora de um produto (integer ou date) que indique a ordem pela qual os produtos foram adquiridos. O conjunto de dados deve ser classificado pelo campo-chave identificador da cesta. Guia de referência de comando de compilação de dados e do TML 125 Sobre o Assistente de Regra de Associação Parâmetros do algoritmo : O Assistente de Regra de Associação apriori é baseado no algoritmo padrão do setor e inclui uma ampla gama de funcionalidades para controlar a descoberta da regra. É possível restringir a descoberta de regra a certos produtos de interesse e controlar vários parâmetros que definem o que é uma regra de interesse (suporte, confiança, complexidade da regra, medidas ampliadas de seleção de regra). Note que essas configurações podem ter impacto no tempo de execução: em particular, reduzir o valor mínimo de suporte aumentará o tempo de execução, a menos que seja especificada também uma complexidade de regra máxima (número de antecessores). Terminologia: O Assistente de Regra de Associação usa diversos termos que podem ser desconhecidos, incluindo: Regra: Em geral, uma regra declara se um conjunto de condições é satisfeito (o lado esquerdo ou o antecessor da regra), depois ocorrerá uma outra condição (o lado direito ou o consequente da regra). Nas regras de associação e sequenciamento, as condições na regra correspondem à presença de certos itens na cesta. Por exemplo, uma regra simples pode ser: se uma cesta contém pão, então também conterá geleia. Antecessor : O lado esquerdo de uma regra, ou seja, o conjunto de itens que devem aparecer em uma cesta para que a regra seja relevante. Consequente: O lado direito de uma regra, ou seja, o conjunto de itens que a regra prevê estarem presentes quando o lado esquerdo (antecessor) é satisfeito. Suporte: O suporte (absoluto) de um conjunto de itens corresponde ao número de cestas que contêm todos os itens no conjunto. Suporte relativo é o mesmo número expresso como porcentagem do número total de cestas. Suporte da Regra: O suporte de uma regra é o suporte do antecessor da regra, ou seja, a proporção de cestas às quais se aplica a regra do lado esquerdo. Isso mede a frequência de relevância da regra. Confiança da Regra A confiança de uma regra é o suporte do conjunto de todos os itens que aparecem na regra (à esquerda ou direita), dividido pelo suporte do antecessor da regra. Mede a probabilidade do consequente da regra (lado direito) ser verdadeiro, considerando que o antecessor da regra seja satisfeito, ou seja, a probabilidade de a regra estar correta. Diferença de Confiança Absoluta relativamente ao Anterior: A razão das medidas de confiança posteriores e anteriores (com e sem os itens antecessores). Isso mede a maior (ou menor) probabilidade do consequente da regra quando o lado esquerdo da regra é verdadeiro. Por exemplo, a regra "se há pão, então há geleia" não é muito interessante se sua confiança for similar à regra "se (qualquer coisa), então há geleia". Valor de elevação: A razão das medidas de confiança posteriores e anteriores (com e sem os itens antecessores). Resultados: São gerados vários resultados (opcionalmente), incluindo: • Um relatório modelo em HTML interativo resume as regras criadas, as suas métricas e a opção de filtro de regras que interessam. • Um conjunto de dados novo criando um conjunto de dados agregado (um registro por identificador de cesta) que indica se a regra selecionada é satisfeita nesse grupo de registros. • As regras como código implementável no formato Transaction Measurement Language. 126 Portrait Miner 7.0A Capítulo 9: Comandos para compilar modelos qsruleminer Sinopse qsruleminer -ini <arquivo de configuração> -output <arquivo de regras> [-force] Descrição: Descobre regras de associação e de sequenciação. Parâmetros: O arquivo de configuração controla a forma como o processo de exploração de regra é executado. Cada linha do arquivo pode especificar uma das opções listadas abaixo. Linhas que começam com # ou sem um sinal igual (=) são ignoradas. (Note que comentários à direita não são suportados.) Uma linha que comece com eof faz com que o resto do arquivo seja ignorado. Por exemplo, o seguinte arquivo ini iria procurar regras que exibem a elevação como medida adicional com um mínimo de três itens e um máximo de 10 itens, com um mínimo de confiança de 20%, o mínimo de suporte de 5% e um mínimo de elevação de 25%: focus = 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 Parâmetro Padrão Descrição focus (necessário) A localização do focus de entrada. task (necessário) Especifica a tarefa de descoberta. Valores válidos são: segment, market basket, next product key fields (necessário) Especifica um campo-chave ou chave composta (lista de campos separada por vírgulas) que define uma cesta. O conjunto de dados de entrada deve estar ordenado relativamente à chave. product field (necessário) Especifica o identificador do campo do produto. O campo deve ser com bin e categórico. Cada bin define um produto separado (por isso, pode ser usada uma hierarquia binning para trabalhar em diferentes níveis de detalhe Guia de referência de comando de compilação de dados e do TML 127 qsruleminer Parâmetro Padrão Descrição com os mesmos dados de produtos subjacentes). Não são suportadas chaves compostas. rhs (nenhum) Lista de itens separada por vírgulas que restringe os itens que podem surgir na parte direita (consequente) de uma regra. Note que não é permitido excesso de espaços em branco — - os rótulos itemA, itemB e itemC precisam coincidir exatamente com os rótulos de bin correspondentes no campo do produto. timestamp field (nenhum) (somente tarefa de produto seguinte) Especifica o campo que deve ser usado como timestamp para cada item. Deve ser do tipo integer ou date. Não são suportadas chaves timestamp compostas. segment fields (nenhum) (somente tarefa de segmento) Especifica uma lista de campo separada por vírgulas na tarefa de descoberta do segmento. Os rótulos de bin nos campos especificados irão corresponder aos itens na tarefa de descoberta. options (nenhum) Passa tudo o que se estiver depois do sinal igual diretamente para o algoritmo apriori. Opções de suporte apriori incluem (consulte também http://www.borgelt.net/doc/apriori/apriori.html#options): 128 Opção Descrição -tr Regras de associação de descoberta -s<#> Valor de suporte mínimo (padrão: 10%) -S<#> Valor de suporte máximo: positivo: porcentagem; negativa: número absoluto (padrão: 100%) -c<#> Valor de confiança mínimo (padrão: 80%) Portrait Miner 7.0A Capítulo 9: Comandos para compilar modelos Opção Descrição -m<#> Número mínimo de itens por regra (padrão: 1) -n<#> Número máximo de itens por regra (padrão: sem limite) -ex Não use uma medida de avaliação de regra adicional -d<#> Valor mínimo para a medida de avaliação de regra adicional (padrão 10%) Para especificar a medida de avaliação de regra adicional: -ec Confiança da Regra -ed Diferença de Confiança Absoluta relativamente ao Anterior -el Valor de elevação -ea Diferença do Valor de Elevação para 1 -eq Diferença do Quociente de Elevação para 1 -ev Convicção -ee Diferença de Convicção para 1 -er Diferença do Quociente de Convicção para 1 -ef Fator Certeza -en Medida de Quadrado Chi Normalizada -ep Valor P da Medida do Quadrado Chi -ei Diferença de Informações relativamente ao Anterior -eg Valor P da Estatística G -eb Log Binário do Quociente de Suporte Guia de referência de comando de compilação de dados e do TML 129 Capítulo Comandos para trabalhar com arquivos QMML Nesta seção: • • • • • • qsqmmlview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132 qsqmmledit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132 qslt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135 qsqmml2sas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137 qsqmml2sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137 qsqsfmtosas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138 10 qsqmmlview qsqmmlview Sinopse qsqmmlview -input <arquivo de origem QMML> [-prettyprint | -rulesets | -ruleset <conjunto de regras>] Descrição: Exibe informações sobre o arquivo de origem QMML: mostra os conteúdos organizadamente formatados em XML (a opção -prettyprint). Mostra informações de resumo para todos os conjuntos de regras no arquivo (a opção -rulesets) ou mostra informações detalhadas para um conjunto de regras especificado (a opção -ruleset). Por padrão, o qsqmmlview mostra informações detalhadas para todos os conjuntos de regras no arquivo. Argumentos opcionais: Além dos argumentos necessários, o qsqmmlview aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se for especificada a opção -rulesets ou -ruleset e o arquivo QMML não for do formulário qmml:rules, o qsqmmlview falha. • Se dor usada a opção -ruleset e o arquivo QMML não apresentar um conjunto de regras com o nome especificado, o qsqmmlview falha. • Para informações sobre regras e conjuntos de regras QMML, consulte Quadstone Metadata Markup Language. Exemplos Verificar qual o conjunto de regras (se houver) no documento de regras QMML model.qmml é dinâmico: qsqmmlview -input model.qmml -rulesets Visualizar os nomes e os tipos dos campos de entrada e de saída para o conjunto de regras (compilado) OutcomeRules, no documento de regras QMML model.qmml: qsqmmlview -input model.qmml -ruleset OutcomeRules Consulte também XML no Portrait Miner na página 340 qsqmmledit na página 132 qsqmmledit Sinopse qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino QMML>] -addrule <arquivo de regras> 132 Portrait Miner 7.0A Capítulo 10: Comandos para trabalhar com arquivos QMML qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino QMML>] -addruleset <conjunto de regras> <regra> [<regra> ...] qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino QMML>] -deleteruleset <conjunto de regras> qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino QMML>] -parse [-s] qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino QMML>] {-compile | -compile <conjunto de regras> [<conjunto de regras> ...] } [-l] [-s] qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino QMML>] {-setlive | -setlive <conjunto de regras> | -setlive <conjunto de regras> true | -setlive <conjunto de regras> false} Descrição: Modifica o arquivo de origem QMML (se a opção -output não for usada) realizando uma das seguintes operações: • Adiciona uma regra de um arquivo de regras, que é um arquivo padrão XML contendo elementos <field>, ou um arquivo QMML de intercâmbio FDL, contendo regras em elementos de <fdl-derivation> e <fdl-function>. Dá o nome Rule a uma regra sem nome. Se o arquivo de origem QMML não for do formulário qmml:rules, ou se já apresentar uma regra com o mesmo nome de uma outra regra qualquer do arquivo de regras, o qsqmmledit falha. • Adiciona um conjunto de regras contendo uma ou mais regras (já existentes como elementos de <field> ao arquivo de origem QMML). Se o arquivo de origem não for do formulário qmml:rules ou se já apresentar um conjunto de regras com o nome especificado do conjunto de regras, ou se não apresentar regras com todos os nomes especificados, o qsqmmledit falha. • Exclui um conjunto de regras (mas não as regras que contém). Se o arquivo de origem QMML não for do formulário qmml:rules, ou se não apresentar um conjunto de regras com o nome especificado, o qsqmmledit falha. • Analisa o arquivo. Se for usado Arquivo->Exportar como QMML no Decision Studio para criar o arquivo de origem QMML, o Portrait Miner analisa o arquivo QMML automaticamente. Neste caso, não é necessário usar o comando -parse. Caso contrário, o comando -parse é um pré-requisito para a compilação. Se o arquivo de origem QMML não for da forma qmml:rules, o qsqmmledit não faz nada (a menos que seja usada a opção -s e, nesse caso, falha). Se o arquivo QMML for da forma qmml:rules, o qsqmmledit tenta analisar todas as regras não analisadas. Se uma regra não puder ser analisada, Guia de referência de comando de compilação de dados e do TML 133 qsqmmledit o qsqmmledit produz uma mensagem de aviso e continua com a regra seguinte (a menos que seja usada a opção -s e, nesse caso, falha). • Compila todos os conjuntos de regras ou os conjuntos de regras especificados (um pré-requisito para a implementação). Se o arquivo de origem QMML não for da forma qmml:rules, o qsqmmledit não faz nada (a menos que seja usada a opção -s e, nesse caso, falha). Se uma regra não for analisada, o qsqmmledit falha. • Identifica todos os conjuntos de regras como dinâmicos (prontos para implementação) ou identifica um conjunto de regras especificado como dinâmico (verdadeiro, padrão) ou não (falso). Se o arquivo de origem QMML não for da forma qmml:rules ou se não apresentar um conjunto de regras com o nome especificado ou se o conjunto de regras especificado não estiver compilado, o qsqmmledit falha. Argumentos opcionais Opção Efeito -l À medida que cada conjunto de regras for compilado, identifica-o como dinâmico. -output <arquivo de destino QMML> Em vez de modificar o arquivo de origem QMML, cria o arquivo de destino QMML especificado e aplica as mudanças solicitadas a ele. -s Trata o arquivo estritamente, não permitindo conjuntos de regras vazios. Ao usar com a opção -parse, falha se o arquivo de origem QMML não for da forma qmml:rules ou se alguma regra não analisada no arquivo de origem não puder ser analisada. Ao usar com a opção -compile, falha se o arquivo de origem QMML não for da forma qmml:rules. Além dessas opções de linha de comando, o qsqmmleditaceita opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Para informações sobre regras e conjuntos de regras QMML, consulte Quadstone Metadata Markup Language. • Uma regra só pode ser analisada se for suportada pela variante RealTime do FDL. Exemplos Adicionar regras a partir de um arquivo QMML de intercâmbio FDL model.xfdl para o documento de regras QMML model.qmml: qsqmmledit -input model.qmml -addrule model.xfdl 134 Portrait Miner 7.0A Capítulo 10: Comandos para trabalhar com arquivos QMML Atribuir uma regra Outcome no documento de regras QMML model.qmml a um novo conjunto de regras OutcomeRules: qsqmmledit -input model.qmml -addruleset OutcomeRules Outcome Implantar o documento de regras QMML model.qmml, analisando todos os FDLs incorporados, compilando todos os conjuntos de regras e identificando o conjunto de regras OutcomeRules como dinâmico: qsqmmledit -input model.qmml -parse qsqmmledit -input model.qmml -compile qsqmmledit -input model.qmml -setlive OutcomeRules Consulte também XML no Portrait Miner na página 340 qslt na página 135 qsqmmlview na página 132 qslt Sinopse qslt {-input <arquivo de origem> | -input -} [-output <arquivo de destino> | -output -] [[-source <tipo de origem>] [-target <tipo de destino>] | -transform <nome da transformação>] [-spec <arquivo de especificação> Descrição: Transforma o arquivo de origem especificado ou a entrada padrão (com -input -) para um formato diferente, gravando o resultado, por padrão, na saída padrão. Por padrão, o qslt deduz os tipos de arquivo de origem e de destino a partir das extensões do nome do arquivo (se houver) e a partir dos conteúdos do arquivo, no caso de um arquivo de origem XML. Em seguida, tenta encontrar e aplicar uma transformação que coincida com esses tipos. Se não houver nenhuma ou se houver mais de uma transformação possível, o comando não faz nada, emite uma mensagem de erro, e falha. As transformações padrão que coincidem com os tipos de arquivo de origem e de destino são: • De fdl (uma expressão FDL ou um conjunto de instruções create TML) para expressões qmml (FDL totalmente analisada em QMML) • De fdl (uma expressão FDL ou um conjunto de instruções create TML) para qmml:x-fdl o (formato de intercâmbio FDL QMML) e vice-versa • De qmml:expressions (FDL totalmente analisada em QMML) para qmml:x-fdl (formato QMML de intercâmbio FDL) • De qmml:rules (formato de regras QMML) para fdd (formato de descrição de dados simples) Guia de referência de comando de compilação de dados e do TML 135 qslt A transformação padrão restante é a transformação chamada prettyprint, que transforma XML arbitrário em XML organizadamente formatado (com quebras de linha e recuo). Só é possível selecioná-la usando a opção -transform. Argumentos opcionais Opção Efeito -output <arquivo de destino> Grava os dados transformados neste arquivo de destino (substituindo qualquer arquivo existente com o mesmo nome). -output - Grava os dados transformados na saída padrão (a definição padrão, se não for especificada uma opção -output). -source <tipo de origem> Considera somente transformações que coincidam com este tipo de origem (substituindo um tipo de origem deduzido, se houver). É necessário especificar essa opção se o qslt estiver lendo a partir de uma entrada padrão. -spec <arquivo de especificação> Localiza a transformação pretendida nesse arquivo, ignorando as transformações padrão e qualquer personalização de todo o sistema ou especificada pelo usuário. -target <tipo de destino> Considera somente transformações que coincidam com este tipo de destino (substituindo um tipo de destino deduzido, se houver). É necessário especificar essa opção se o qslt estiver gravando em uma saída padrão. -transform <nome da transformação> Usa o nome da transformação em vez de selecionar uma transformação com base nos tipos de origem e de destino. Além dessas opções de linha de comando, o qslt aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Ao converter entre o tipo fdl e QMML, as instruções create TML correspondem a derivações de campo com nome em QMML, enquanto expressões FDL simples correspondem a derivações de campo sem nome em QMML. • A conversão do tipo qmml:rules para fdd omite campos derivados. • Assim como acontece nos tipos de transformação padrão, é possível definir transformações personalizadas baseadas em todo o sistema ou especificadas pelo usuário. As transformações personalizadas podem aceitar opções de linha de comando adicionais. • Para detalhes sobre as formas QMML qmml:expressions, qmml:rules, e qmml:x-fdl, consulte Quadstone Metadata Markup Language. Exemplos 136 Portrait Miner 7.0A Capítulo 10: Comandos para trabalhar com arquivos QMML Transformar o campo de metadados representado pelo arquivo FDD model.fdd em um documento de regras "vazio" QMML model.qmml (descrevendo um conjunto de campos, mas não contendo regras), usando uma transformação especificada pelo usuário descrita no arquivo ext/qmml/qslt.xml: qslt -source fdd -target qmml:rules -input model.fdd -output model.qmml -spec ext/qmml/qslt.xml Transformar uma expressão FDL no arquivo model.fdl para o formato QMML de intercâmbio FDL, gravando o resultado no arquivo model.xfdl: qslt -source fdl -target qmml:x-fdl -input model.fdl -output model.xfdl Consulte também XML no Portrait Miner na página 340 qsqmmledit na página 132 qsqmml2sas Sinopse qsqmml2sas <arquivo QMML> Descrição: Converte um arquivo QMML em um arquivo SAS que apresenta instruções SAS separadas para cada derivação de campo. Observação: • O comando é experimental. • É possível acessar a maior parte das funcionalidades do comando de compilação de dados qsqmml2sas, usando a caixa de diálogo Converter para SAS, no Portrait Miner. Exemplo Converter model.qmml para model.sas: qsqmml2sas model.qmml qsqmml2sql Sinopse qsqmml2sql <arquivo QMML> {Oracle | Teradata V2Rx | MS SQL Server} <tabela de origem> [<campo> [, <campo> ... ]]} Descrição: Usa um tipo de banco de dados suportado e uma tabela de origem para converter um arquivo QMML em um arquivo SQL que apresenta uma instrução SQL SELECT separada para cada derivação de campo. Argumentos opcionais Guia de referência de comando de compilação de dados e do TML 137 qsqsfmtosas Opção Efeito <campo> [, <campo> ... ] Converte somente campos derivados. Observação: • O comando é experimental. • É possível acessar a maior parte das funcionalidades do comando de compilação de dados qsqmml2sql, usando a caixa de diálogo Converter para SQL, no Portrait Miner. Exemplo Converter model.qmml em model.sql, criar instruções SELECT para Microsoft SQL Server e usar prod.customer como a tabela de origem para qualquer pontuação. qsqmml2sas model.qmml "MS SQL Server" prod.customer qsqsfmtosas Sinopse qsqsfmtosas <arquivo de metadados> Descrição: Converte derivações de um arquivo de metadados em um arquivo SAS que apresenta uma instrução SAS separada para cada derivação de campo. Observação: • O comando é experimental. • É possível acessar a maior parte das funcionalidades do comando de compilação de dados qsqsfmtosas usando a caixa de diálogo Converter para SAS, no Portrait Miner. Exemplo Converter metadata.qsfm para metadata.sas: qsqsfmtosas metadata.qsfm 138 Portrait Miner 7.0A Capítulo Outros comandos Nesta seção: • qsmapgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140 11 qsmapgen qsmapgen Sinopse qsmapgen -input <hieraquia categórica> [-input <hieraquia categórica> ...] -name <nome do mapa> -output <diretório> [-overwrite] [-style radial_drill | -style radial_layers] Descrição: Cria, a partir de um ou mais arquivos de hierarquias categóricas (normalmente com extensão do nome de arquivo .hrc), uma representação das hierarquias categóricas apropriadas para uso no Visualizador de Mapas do Decision Studio, com uma região correspondente a cada categoria. Cria o mapa dos mapas no diretório especificado, usando o nome do mapa especificado como base dos nomes dos arquivos. Argumentos opcionais Opção Efeito -overwrite Permite arquivos de mapas novos especificados usando as opções -name e -output para substituir arquivos existentes. Sem a opção -overwrite, se algum dos arquivos de mapa a serem criados já existirem, o comando não faz nada (exceto emitir um aviso). -style radial_drill Cria uma hierarquia de mapas apropriados para fazer uma busca detalhada no Visualizador de Mapas do Decision Studio, com o mapa de nível superior (exibido inicialmente) baseado no binning de alta granularidade em cada hierarquia binning categórica (padrão, se não for especificada uma opção -style). -style radial_layers Cria um mapa independente para cada nível nas hierarquias binning categóricas, para que um usuário do Decision Studio possa escolher o grau de granulidade em que irá ver os campos no Visualizador de Mapas, mas sem a opção de busca detalhada. Além dessas opções de linha de comando, o qsmapgen aceita as opções comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21]. Observação: • Se um arquivo de hierarquia categórica não especificar uma hieraquia correta, o qsmapgen falha. • Não deve ser usado um valor de campo em mais de um arquivo de hierarquia categórica. Se for usado, o comportamento do qsmapgen é indefinido. 140 Portrait Miner 7.0A Capítulo 11: Outros comandos • Se for especificado um nome de categoria em mais de um arquivo de hierarquia categórica, ou em mais de um nível do mesmo arquivo, o qsmapgen adiciona um ou mais sufixos aos nomes das regiões para garantir exclusividade. • Para um mapa produzido usando -style radial_drill (ou nenhuma opção -style especificada), o mapa de nível superior consiste de arquivos .mif e .mid, nomeados usando o nome de mapa especificado. Mapas de busca detalhada para o próximo nível de detalhe estão dentro do próximo subdiretório. Mapas em níveis de detalhe subsequentes (se houver) estão dentro do próximo subdiretório desse diretório, e assim por diante. • Os mapas produzidos usando -style radial_layers consistem de pares de arquivos .mif e .mid, cada um nomeado por meio do nome do mapa fornecido juntamente com um sufixo numérico correspondendo ao nível na hieraquia. • Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsmapgen por meio da caixa de diálogo Criar mapa de categoria . Exemplos: Dado um arquivo de hierarquia categórica Referrer.hrc, contendo o seguinte: B, Banner Ad, Marketing D, Direct, Direct E, E-mail Link, Marketing G, Google, Search Engine M, MSN, Search Engine Y, Yahoo, Search Engine L, Lycos, Search Engine e o arquivo de hierarquia categórica PurchasePage.hrc, que contém o seguinte: 01, Menswear 02, Womens 03, Kids 04, Home criar um arquivo de mapa clickthru.mif (e arquivos de suporte) apropriados para busca detalhada, em um novo diretório webmaps: qsmapgen -input Referrer.hrc -input PurchasePage.hrc -output webmaps -name clickthru O mapa de nível superior tem as seguintes regiões (os "picos" na circunferência indicam regiões que suportam a busca detalhada até o próximo nível): Guia de referência de comando de compilação de dados e do TML 141 qsmapgen Busca detalhada na região "SearchEngine" produz um mapa com as seguintes regiões: Se preferir, crie arquivos de mapas independentes clickthru_layer_1.mif e clickthru_layer_2.mif (e arquivos de suporte) no diretório webmaps: qsmapgen -input Referrer.hrc -input PurchasePage.hrc -output webmaps -name clickthru_layer -style radial_layers O mapa clickthru_layer_1.mif tem as seguintes regiões: 142 Portrait Miner 7.0A Capítulo 11: Outros comandos e o mapa clickthru_layer_2.mif tem as seguintes regiões: Guia de referência de comando de compilação de dados e do TML 143 Capítulo Linguagem de Medição de Transação (TML) Nesta seção: • Sobre Transaction Measurement Language . . . . . . . . .146 • Sintaxe TML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146 • Palavras reservadas em TML . . . . . . . . . . . . . . . . . . . . . .147 12 Sobre Transaction Measurement Language Sobre Transaction Measurement Language A Transaction Measurement Language (TML) é um conjunto de invólucros sintáticos leves, em torno de expressões FDL, usada para especificar derivações e agregações de campo em conjunto com os assistentes Derivar Campos e Agregar Registros e os comandos de compilação de dados do Portrait Miner qsderive, qsmeasure, qstrack e qsselect. Consulte também Sobre Linguagem de Campo Derivado (FDL) na página 180 qsderive na página 63 qsmeasure na página 66 qsselect na página 72 qstrack, na página 70 Sintaxe TML na página 146 Sintaxe TML Um arquivo de derivações, rastreios, seleções ou agregações contém uma ou mais instruções TML create, enquanto um arquivo de estatísticas contém uma ou mais instruções TML calculate. • A TML é uma linguagem sensível a maiúsculas e minúsculas: • Palavras-chave da TML (create, by, string etc.) são escritas em minúsculas, exceto em STATISTIC. • Os nomes de todas as funções de agregação [consulte Funções de agregação para medições e derivações na página 160] estão escritos em letra minúscula. • Os nomes Average, average e AVERAGE referem-se todos a campos ou estatísticas diferentes. • Nomes para campos e estatísticas devem começar com uma letra ("A" — "Z" ou "a" — "z"), conter apenas letras, dígitos e sublinhado ("_") e não podem ter mais que 128 caracteres; opcionalmente, pode ficar entre aspas simples, por exemplo, 'CustomerID'. É necessário colocar o nome de um campo ou estatística entre aspas simples se ele coincidir com uma palavra reservada à TML ou FDL, ou diferir somente quanto ao uso de maiúsculas ou minúsculas. • A sintaxe TML é descrita através de diagramas de ferrovia como esse: Desde que siga as setas e não volte para trás, qualquer caminho no diagrama de ferrovia leva a uma TML sintaticamente válida (mesmo que não faça sentido): 146 Portrait Miner 7.0A Capítulo 12: Linguagem de Medição de Transação (TML) • Palavras em caixas ovais/circulares (tal como create) são palavras-chave TML; devem ser escritas exatamente como aparecem. • A pontuação nas caixas ovais também deve ser escrita (como ":" e ":=") exatamente como aparecem (não pode haver espaço entre ":" e "=" em ":="). • Não esqueça o ponto e vírgula que termina cada instrução TML. • Termos em caixas retangulares (como expressões) referem-se a outros diagramas de ferrovia ou formas descritas em outros locais em palavras; não devem ser escritas literalmente. • A TML é uma linguagem formatada livremente: é possível quebrar linhas ou inserir espaço extra entre elementos sintáticos (em caixas ovais/circulares nos diagramas de ferrovia) sem afetar a interpretação de um arquivo de derivações, rastreios, seleções, agregações ou estatísticas. • Além de introduzir espaços entre elementos sintáticos, é possível incluir comentários, começando com barras duplas ("//") e continuando até o final da linha. • Sempre que a sintaxe TML exigir uma expressão, é possível usar qualquer expressão FDL [consulte Expressões na página 184], exceto expressões que usem uma palavra reservada TML, ponto e vírgula ou chaves {...}, que devem ficar entre parênteses (...). Consulte também Sobre Transaction Measurement Language na página 146 Avaliação das estatísticas do focus: a instrução calculate na página 156 Definição de campo: a instrução create na página 150 Palavras reservadas em FDL na página 204 Palavras reservadas em TML na página 147 Palavras reservadas em TML Os seguintes tokens são palavras reservadas em TML: aggregation, all, and, as, auto, automatic, bin, binning, bool, boolean, by, calculate, constant, create, crosstab, date, 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, Para usar uma palavra reservada ou uma palavra que difere somente no uso de maiúsculas e minúsculas, como nome de campo ou estatística em TML ou como um identificador [consulte Expressões na página 184] em FDL, é necessário colocá-lo entre aspas simples — por exemplo, 'Date'. Consulte também Sobre Transaction Measurement Language na página 146 Palavras reservadas em FDL na página 204 Guia de referência de comando de compilação de dados e do TML 147 Capítulo Instruções TML Nesta seção: • Definição de campo: a instrução create . . . . . . . . . . . . .150 • Usando funções de agregação e as cláusulas where e default . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152 • Dividir agregações: a cláusula by . . . . . . . . . . . . . . . . . .154 • Avaliação das estatísticas do focus: a instrução calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156 13 Definição de campo: a instrução create Definição de campo: a instrução create A instrução create define um campo por derivação ou agregação, dependendo do contexto em que aparece. derivations: O arquivo de derivações para qsderive ou a janela Campos Derivados equivalente, o arquivo de rastreios para qstrack e o arquivo de seleções para qsselect devem conter instruções create, da seguinte forma: É possível que opcionalmente o arquivo de agregações para qsmeasure ou a janela Agregar Registros equivalente contenham instruções create, da seguinte forma: Em ambos os casos, a instrução create define um campo chamado nome, em termos de uma expressão FDL [consulte Expressões na página 184]. O tipo de dado do campo é o tipo de dado da expressão, a não ser que seja substituído especificando um tipo compatível [consulte Tipos de Dados na página 182]. • Para cada instrução create sucessiva, o qsderive ou a janela Campos Derivados equivalente derivam um campo no focus de saída usando a expressão fornecida, sendo possível se referir a campos no focus de origem e a campos derivados anteriormente no arquivo de derivações. • Para cada instrução create sucessiva no arquivo de rastreios, o qstrack deriva um campo usando a expressão fornecida, sendo possível se referir a campos no focus de origem e a campos derivados anteriormente no arquivo de rastreios, assim como também a estatísticas de focus definidas em quaisquer arquivos de estatísticas. A expressão envolve, normalmente, variáveis de estado [consulte Variáveis na página 188]. • Dado um arquivo de seleções, o qsselect deriva um campo correspondente, por padrão, à primeira instrução create e ignora quaisquer outras instruções no arquivo. É necessário que a expressão de definição seja de tipo booleano (ou compatível). • Para cada instrução create sucessiva dessa forma no arquivo de agregações, o qsmeasure ou a janela Agregar Registros deriva um campo no focus de saída usando a expressão fornecida, sendo possível se referir a campos derivados anteriormente no arquivo de agregações e a estatísticas de focus definidas em quaisquer arquivos de estatística. • Uma instrução temporary tem o mesmo efeito de uma instrução create, exceto que o campo não aparece no focus de saída. No entanto, ainda é possível consultar o campo temporário nas expressões subsequentes no arquivo de agregações. Agregações É possível que o arquivo de agregações para o qsmeasure ou a janela Agregar Registros equivalente contenham instruções create da seguinte forma: 150 Portrait Miner 7.0A Capítulo 13: Instruções TML Para cada instrução create desse formulário no arquivo de agregações, o qsmeasure ou a janela Agregar Registros deriva eficazmente um campo virtual correspondente à expressão seguindo a função de agregação. É possível a essa expressão se referir a campos no focus de origem. Após derivar o campo virtual, o qsmeasure ou a janela Agregar Registros aplica a função de agregação [consulte Usando funções de agregação e as cláusulas where e default na página 152]. O tipo de dado padrão do(s) campo(s) resultante(s) depende da função de agregação e dos valores, operadores e funções envolvidas na expressão a que se aplicam, mas é possível ser substituído especificando um tipo compatível. Uma instrução temporary tem o mesmo efeito de uma instrução create, exceto que o campo não aparece no focus de saída. No entanto, ainda é possível consultar o campo temporário nas expressões subsequentes no arquivo de agregações. Observação: • No qsderive ou nos arquivos de derivações Campos Derivados, nos arquivos de seleção qsselect e arquivos de rastreios qstrack, é possível que a expressão envolva estatísticas de campo, variáveis globais e funções definidas nesses termos. Esses recursos FDL não estão disponíveis em um qsmeasure ou arquivo de agregações Agregar Registros. • É necessário colocar parênteses extras contendo a expressão, se ela contiver ponto e vírgula, chaves ou uma palavra reservada da TML [consulte Palavras reservadas em TML na página 147]. • É necessário que cada instrução create comece em uma nova linha. Exemplos Dado o arquivo de derivações, derivations-customer.tml, contendo o seguinte: // Length of standing of customer in months create CustMonths := countwholemonths(StartDate, today()); // A key field of extended length create CustomerID_24 : string(24) := CustomerID; Aplique essas derivações ao focus RetailCustApril.ftr para criar um novo focus RetailCustAprilDeriv.ftr: qsderive -derivations derivations-customer.tml -input RetailCustApril.ftr -output RetailCustAprilDeriv.ftr Dado o arquivo de seleções selections-customer.tml, contendo o seguinte: // Select male customers aged between 18 and 65 inclusive. create Selection := Gender = 1 and Age >= 18 and Age <= 65; Guia de referência de comando de compilação de dados e do TML 151 Usando funções de agregação e as cláusulas where e default Aplique essas seleções ao focus RetailCustApril.ftr para criar um novo focus RetailCustAprilDeriv.ftr: qsselect -selections selections-customer.tml -input RetailCustApril.ftr% -output RetailCustAprilSelection.ftr Dado o arquivo de agregações, aggregations-mostRecent.tml, contendo o seguinte: temporary LastPurchase := max(PurchaseDate); create AvgTransVal := mean(Amount - 0.01 * PointsRedeemed); create NumTrans := count(); create MonthsSinceLastPurchase := countwholemonths(LastPurchase, today()); Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente RetailAggRecentApril: qsmeasure -aggregations aggregations-mostRecent.tml -input RetailTransAprilSorted.ftr -output RetailAggRecentApril% -keys CustomerID Consulte também Funções de agregação para medições e derivações na página 160 qsderive na página 63 qsmeasure na página 66 qsselect na página 72 qstrack, na página 70 Dividir agregações: a cláusula by na página 154 Usando funções de agregação e as cláusulas where e default É possível agregar dados usando o qsmeasure ou a janela Agregar Registros equivalente. Ao usar uma instrução create em um arquivo de agregações [consulte Definição de campo: a instrução create na página 150], o qsmeasure ou a janela Agregar Registros deriva eficazmente um campo virtual correspondente à expressão entre parênteses seguidas da função agregação. Conceitualmente, o qsmeasure ou a janela Agregar Registros dividem os registros no focus de origem — aumentados pelo campo virtual — em grupos de registros com o mesmo valor do campo-chave. Para cada grupo de registros (correspondendo a apenas um valor do campo-chave), o qsmeasure ou a janela Agregar Registros aplicam a função de agregações aos valores do campo virtual dentro desses registros, para produzir apenas um valor de resultado. 152 Portrait Miner 7.0A Capítulo 13: Instruções TML Os valores do resultado para todos os grupos juntos constituem um novo campo, com o mesmo nome fornecido na instrução create — a não ser que a instrução create contenha uma cláusula by [consulte Dividir agregações: a cláusula by na página 154]. Dentro de cada grupo de registros com um valor de campo-chave comum, certas funções de agregação ignoram os registros para o qual o campo virtual contém um nulo [consulte O valor nulo na página 182]. Se a instrução create tiver uma cláusula where, a função de agregação ignora os registros para os quais a expressão associada avalia para 0 ("falso"). É possível a essa expressão se referir a campos no focus de origem. Como é possível que as funções de agregação ignorem alguns dos registros em um grupo com um valor de campo-chave comum, é possível saltar todos os registros no grupo. Muitas funções de agregação devolvem o valor nulo. Ao incluir uma cláusula default, é possível especificar uma expressão constante a ser avaliada em vez de a agregação no caso de ser devolvido um nulo. Observação: Ao usar a função de agregação sum [consulte sum (um argumento) na página 177], deve ser especificada uma soma padrão de 0. Se não for usada uma cláusula default, a soma de uma seleção de registro vazio é nula, o que, certamente, não é desejado. Exemplos Dado o arquivo de agregações, aggregations-purchaseSummary.tml, contendo o seguinte: 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); Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente RetailAggSummaryApril: qsmeasure -aggregations aggregations-purchaseSummary.tml -input RetailTransAprilSorted.ftr -output RetailAggSummaryApril -keys CustomerID Consulte também Funções de agregação para medições e derivações na página 160 Guia de referência de comando de compilação de dados e do TML 153 Dividir agregações: a cláusula by Expressões na página 184 Dividir agregações: a cláusula by O arquivo de agregações para qsmeasure ou a janela Agregar Registros equivalente contêm uma sequência de instruções create [consulte Definição de campo: a instrução create na página 150]. Como parte dessa instrução create, é possível incluir opcionalmente uma cláusula by, para dividir sua agregação de acordo com a aplicação de uma função split ou a função bin a uma expressão derivada de outros campos. Por cada i integer possivelmente retornado pela função split ou a função bin, o qsmeasure ou a janela Agregar Registros criam um campo separado, contendo somente valores agregados dos registros para o qual a aplicação de função avalia para i. O nome de cada um desses campos relacionados é formado a partir do nome na instrução create juntamente com um sufixo que depende da função usada para dividir a agregação. • As seguintes funções internas de divisão estão disponíveis (com sufixos de nome de campo fornecidos correspondendo a valores de função sucessivos): Função Sufixos de nome de campo 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" • É possível usar a função bin para aplicar um binning FDL a uma expressão. Usada como uma função de divisão, a função bin dá origem a sufixos de nome de campo "_1," "_2," ..., "_n," "_null," e "_other" (onde n depende do número de bins no binning). • Também é possível configurar sua função de divisão [consulte Funções definidas pelo usuário na página 190]. O atributo element_names define os sufixos dos nomes de campo correspondentes aos valores de retorno das funções. 154 Portrait Miner 7.0A Capítulo 13: Instruções TML Exemplos Fornecido o arquivo de agregações, aggregations-builtinSplit.tml, contendo o seguinte: create numberPurchases := count(); create numberPurchasesOn_ := count() by dayofweek(PurchaseDate); create proportionPurchases_Mon := numberPurchasesOn_Mon / numberPurchases; create purchaseAmountIn_ := sum(Amount) by month(PurchaseDate) default 0; Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente RetailDateSplitsApril.ftr contendo os campos CustomerID, numberPurchases, numberPurchasesOn_Sun, numberPurchasesOn_Mon, ..., numberPurchasesOn_Sat, proportionPurchases_Mon e purchaseAmountIn_Jan, purchaseAmountIn_Feb, ..., purchaseAmountIn_Dec: qsmeasure -aggregations aggregations-builtinSplit.tml -keys CustomerID -input RetailTransApril.ftr -output RetailDateSplitsApril.ftr Fornecido o arquivo de agregações, aggregations-binSplit.tml, contendo o seguinte: 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; Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente, RetailRangeSplitsApril.ftr, contendo os campos CustomerID, numberPurchasesAmountBand_1, numberPurchasesAmountBand_2, ..., numberPurchasesAmountBand_6, numberPurchasesAmountBand_null, numberPurchasesAmountBand_other (correspondendo a dois últimos bins, quatro bins internos e o bin nulo e não classificado), numberPurchasesDateBand_1, numberPurchasesDateBand_2, ..., numberPurchasesDateBand_4, numberPurchasesDateBand_null, numberPurchasesDateBand_other, e ratioPrePost: qsmeasure -aggregations aggregations-binSplit.tml -keys CustomerID -input RetailTransApril.ftr -output RetailRangeSplitsApril.ftr Fornecido o arquivo de funções FDL, fdl-functions-storeGroups.fdl, contendo o seguinte: 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; } Fornecido o arquivo de agregações, aggregations-userDefinedSplit.tml, contendo o seguinte: create totalPurchases := sum(Amount); create totalPurchasesByStore_ := sum(Amount) by StoreGroupFunction( Store ); Guia de referência de comando de compilação de dados e do TML 155 Avaliação das estatísticas do focus: a instrução calculate create proportionPurchases_North := totalPurchasesByStore_North / totalPurchases; Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente, RetailGroupSplitsApril.ftr, contendo os campos CustomerID, totalPurchases, totalPurchasesByStore_North, totalPurchasesByStore_South, totalPurchasesByStore_East, totalPurchasesByStore_West, e proportionPurchases_North: qsmeasure -aggregations aggregations-userDefinedSplit.tml -library fdl-functions-storeGroups.fdl -keys CustomerID -input RetailTransApril.ftr -output RetailGroupSplitsApril.ftr Consulte também Funções de agregação para medições e derivações na página 160 Expressões na página 184 Usando funções de agregação e as cláusulas where e default na página 152 Avaliação das estatísticas do focus: a instrução calculate O arquivo de estatísticas para o qsmeasure, a janela Agregar Registros equivalente ou o qstrack contêm instruções calculate da seguinte forma: A instrução calculate define uma estatística de focus chamada nome em termos de uma função de agregação aplicada a uma expressão FDL [consulte Expressões na página 184], que pode se referir a campos no focus de origem. No caso de uma medição [consulte Usando funções de agregação e as cláusulas where e default na página 152], o qsmeasure, o qstrack ou a janela Agregar Registros deriva efetivamente um campo virtual correspondendo à expressão entre parênteses após a função de agregação. A instrução calculate dá origem a apenas um valor de resultado, obtido por meio da aplicação da função de agregação a todos os valores no campo virtual. (Em contraste, uma instrução create em um arquivo de agregações dá origem a um campo no qual cada valor é obtido pela aplicação da função de agregação aos valores no campo virtual para um grupo de registros.) O tipo de dado padrão de uma estatística de focus depende da função de agregação e dos valores, operadores e funções envolvidas na expressão a que se aplicam, mas é possível substituí-lo especificando-se um tipo compatível [consulte Tipos de Dados na página 182]. 156 Portrait Miner 7.0A Capítulo 13: Instruções TML Se a instrução calculate tiver uma cláusula where, a função de agregação ignora os registros para os quais a expressão associada avalia para 0 ("falso"). É possível a essa expressão se referir a campos no focus de origem. Assim que for definida uma estatística de focus no arquivo de estatísticas, é possível se referir a ele em expressões no arquivo de agregações ou rastreios usando a forma especial de nome STATISTIC . É possível usar essa forma em qualquer lugar que seja possível indicar um campo no focus de origem ou arquivo de rastreios. Exemplos Dado o arquivo de estatísticas, statistics-amount.tml, contendo o seguinte: calculate averageAmount := mean(Amount); Dado o arquivo de agregações, aggregations-statistic.tml, contendo o seguinte: create averageSpend := mean(Amount); create bigSpender := averageSpend > STATISTIC.averageAmount; Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus RetailAprilBigSpenders.ftr orientado para cliente contendo os campos CustomerID, averageSpend e bigSpender: qsmeasure -statistics statistics-amount.tml -aggregations aggregations-statistic.tml -keys CustomerID -input RetailTransApril.ftr -output RetailAprilBigSpenders.ftr Consulte também Funções de agregação para medições e derivações na página 160 Guia de referência de comando de compilação de dados e do TML 157 Capítulo Funções de agregação Nesta seção: • • • • • • • • • • • • • • • • • • • • • • • • Funções de agregação para medições e derivações . .160 any . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163 confintlower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163 confintupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 countnonnull/countnonnulls . . . . . . . . . . . . . . . . . . . . . .165 countnull/countnulls . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 countunique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 countuniquenonnull . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 first . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169 max (um argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . .169 mean (um argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . .170 median . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171 min (um argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171 mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172 moderatio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173 percentage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173 percentagerate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174 segindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 significance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 stdev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 sum (um argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 14 Funções de agregação para medições e derivações Funções de agregação para medições e derivações Existem várias funções de agregação disponíveis para uso em medições e derivações. Usar uma função contexto de medição significa usá-la em um arquivo de agregações [consulte Usando funções de agregação e as cláusulas where e default na página 152] ou arquivo de estatísticas [consulte Avaliação das estatísticas do focus: a instrução calculate na página 156] para qsmeasure ou a janela Agregar Registros equivalente, ou em um arquivo de estatísticas para qstrack. Usar uma função em um contexto de derivação significa usá-la em uma derivação do Decision Studio, em um arquivo de derivações para o qsderive ou a janela Derivar Campos equivalente, em o arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Exceto quando indicado, uma função de agregação assume apenas um campo numeric, string ou date como argumento. Funções de agregação para medições e para derivações É possível usar as seguintes funções de agregação, tanto nos contextos de medição como de derivação: Função Resultado count O número de registros no grupo/segmento (Essa função não usa argumento.) max [consulte max (um argumento) na página 169] O valor não nulo máximo no campo para o grupo/segmento (Em um contexto de derivação, essa função não aceita uma expressão de valor string como argumento.) mean [consulte mean (um argumento) na página A média (média comum) dos valores não nulos no 170] campo para o grupo/segmento (Essa função requer uma expressão numérica como argumento.) min [consulte min (um argumento) na página 171] O valor não nulo mínimo no campo para o grupo/segmento (Em um contexto de derivação, essa função não aceita uma expressão de valor string como argumento.) stdev O desvio padrão dos valores não nulos no campo para o grupo/segmento (Essa função requer uma expressão numérica como argumento.) 160 Portrait Miner 7.0A Capítulo 14: Funções de agregação Função Resultado sum [consulte sum (um argumento) na página 177] A soma dos valores não nulos no campo para o grupo/segmento (Essa função requer uma expressão numérica como argumento.) variance A variância dos valores não nulos no campo para o grupo/segmento (Essa função requer uma expressão numérica como argumento.) Funções de agregação somente para medições Só é possível usar as seguintes funções de agregação em uma medida de contexto: Função Resultado any Um valor não nulo no campo, obtido de um registro não nulo arbitrário no grupo/segmento confintlower O limite inferior de um intervalo de confiança de 95% para a média do campo no grupo confintupper O limite superior de um intervalo de confiança de 95% para a média do campo no grupo countnonnull [consulte countnonnull/countnonnulls na página 165] O número de registros no grupo para o qual o campo não tem valores não nulos [consulte O valor nulo na página 182] Em derivações, use o countnonnulls. countnull [consulte countnull/countnulls na página 166] O número de registros do grupo para o qual o campo contém nulo [consulte O valor nulo na página 182]. Em derivações, prefira o countnulls. countunique O número de valores únicos que ocorrem no campo, possivelmente incluindo o valor nulo countuniquenonnull O número de valores únicos, excluindo o valor nulo, que ocorrem no campo first O primeiro valor não nulo no campo para o grupo last O último valor não nulo no campo para o grupo median A mediana (valor do meio) dos valores não nulos no campo para o grupo (Essa função requer uma expressão numérica ou de valor string como argumento.) Guia de referência de comando de compilação de dados e do TML 161 Funções de agregação para medições e derivações Função Resultado mode O modo (valor mais comum) dos valores não nulos no campo para o grupo moderatio A proporção dos registros não nulos no grupo que contêm o valor não nulo mais comum no campo Funções de agregação somente para derivações Só é possível usar as seguintes funções de agregação em um contexto de derivação: Função Resultado countnonnulls [consulte countnonnull/countnonnulls na página 165] O número de registros no segmento para o qual o campo não tem valores não nulos [consulte O valor nulo na página 182] Em medições, use o countnonnull. countnulls [consulte countnull/countnulls na página 166] O número de registros no segmento para o qual o campo contém valores nulos [consulte O valor nulo na página 182] Em medições, use o countnull. percentage O número de registros em um segmento, como porcentagem do número total de registros (Essa função não usa argumento.) percentagerate A porcentagem de registros não nulos no segmento que contém o valor 1 no campo É necessário que o campo contenha somente os valores 0 e 1. segindex Um número positivo identificando exclusivamente o segmento dentro da tabela de referência cruzada formada pelos campos de divisão (Essa função não usa argumento.) significance A significância estatística de qualquer discrepância entre o valor médio do campo no segmento e o valor médio do campo para a população geral, com um sinal para indicar a direção do desvio (Essa função requer uma expressão numérica como argumento.) 162 Portrait Miner 7.0A Capítulo 14: Funções de agregação any Objetivo: Escolher um valor não nulo e arbitrário de um campo (possivelmente por grupo ou segmento). Sintaxe any(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo de onde escolher um valor Resultado Tipo Descrição como entrada Um valor não nulo e arbitrário do campo x (possivelmente por grupo ou segmento) Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 first na página 168 last na página 169 confintlower Objetivo: Calcular o limite mínimo de um intervalo de confiança de 95% para a média de um campo. Sintaxe confintlower(x) Argumentos Tipo Nome Descrição numérico x O campo a ser considerado Resultado Guia de referência de comando de compilação de dados e do TML 163 confintupper Tipo Descrição real O limite inferior de um intervalo dentro do qual, para a média de população do segmento para o campo x, espera-se uma queda com 95% de confiança Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 confintupper na página 164 significance na página 175 confintupper Objetivo: Calcular o limite máximo de um intervalo de confiança de 95% para a média de um campo. Sintaxe confintupper(x) Argumentos Tipo Nome Descrição numérico x O campo a ser considerado Resultado Tipo Descrição real O limite superior de um intervalo dentro do qual, para a média de população do segmento para o campo x, espera-se uma queda com 95% de confiança Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 confintlower na página 163 significance na página 175 164 Portrait Miner 7.0A Capítulo 14: Funções de agregação count Objetivo: Contar o número de registros (possivelmente por grupo ou segmento). Sintaxe count() Argumentos Nenhum Resultado Tipo Descrição inteiro O número de registros (possivelmente por grupo ou segmento). Consulte também Funções de agregação para medições e derivações na página 160 countnonnull/countnonnulls na página 165 countnull/countnulls na página 166 countunique na página 167 countuniquenonnull na página 167 countnonnull/countnonnulls Objetivo: Contar o número de registros no qual um campo tem valores não nulos (possivelmente por grupo ou segmento). Sintaxe countnonnull(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo a ser considerado Resultado Tipo Descrição inteiro O número de registros no qual o campo x tem valores não nulos (possivelmente por grupo ou segmento) Observação: Nas tabelas de referência cruzada do Decision Studio e em um contexto de medição [consulte Funções de agregação para medições e derivações na página 160] essa Guia de referência de comando de compilação de dados e do TML 165 countnull/countnulls função é countnonnull, enquanto que em um contexto de derivação é countnonnulls. Consulte também Funções de agregação para medições e derivações na página 160 count na página 165 countnull/countnulls na página 166 countunique na página 167 countuniquenonnull na página 167 countnull/countnulls Objetivo: Contar o número de registros no qual um campo contém o valor nulo (possivelmente por grupo ou segmento). Sintaxe countnull(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo a ser considerado Resultado Tipo Descrição inteiro O número de registros no qual o campo x é nulo (possivelmente por grupo ou segmento) Observação: Nas tabelas de referência cruzada do Decision Studio e em um contexto de medição [consulte Funções de agregação para medições e derivações na página 160] essa função é countnull, enquanto que em um contexto de derivação é countnulls. Consulte também Funções de agregação para medições e derivações na página 160 count na página 165 countnonnull/countnonnulls na página 165 countunique na página 167 countuniquenonnull na página 167 166 Portrait Miner 7.0A Capítulo 14: Funções de agregação countunique Objetivo: Contar o número de valores únicos que ocorrem em um campo incluindo, potencialmente, o valor nulo (possivelmente por grupo ou segmento). Sintaxe countunique(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo a ser considerado Resultado Tipo Descrição inteiro O número de valores únicos, incluindo nulo, que ocorre em x (possivelmente por grupo ou segmento) Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 count na página 165 countnonnull/countnonnulls na página 165 countnull/countnulls na página 166 countuniquenonnull na página 167 countuniquenonnull Objetivo: Contar o número de valores únicos não nulos ocorrendo em um campo (possivelmente por grupo ou segmento). Sintaxe countuniquenonnull(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo a ser considerado Guia de referência de comando de compilação de dados e do TML 167 first Resultado Tipo Descrição inteiro O número de valores únicos, excluindo o nulo, que ocorre em x (possivelmente por grupo ou segmento) Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 count na página 165 countnonnull/countnonnulls na página 165 countnull/countnulls na página 166 countunique na página 167 first Objetivo: Escolher o primeiro valor não nulo de um campo (possivelmente por grupo ou segmento). Sintaxe first(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo de onde escolher um valor Resultado Tipo Descrição como entrada O primeiro valor não nulo encontrado no campo x (possivelmente por grupo ou segmento) Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 168 Portrait Miner 7.0A Capítulo 14: Funções de agregação any na página 163 last na página 169 last Objetivo: Escolher o último valor não nulo de um campo (possivelmente por grupo ou segmento). Sintaxe last(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo de onde escolher um valor Resultado Tipo Descrição como entrada O último valor não nulo encontrado no campo x (possivelmente por grupo ou segmento) Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 any na página 163 first na página 168 max (um argumento) Objetivo: Calcular o valor não nulo máximo em um campo (possivelmente por grupo ou segmento). Sintaxe max(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo cujos valores serão comparados Guia de referência de comando de compilação de dados e do TML 169 mean (um argumento) Resultado Tipo Descrição como entrada O valor não nulo máximo no campo x (possivelmente por grupo ou segmento) Observação: • Atenção para não confundir essa função aggregation com a função multi-argument [consulte max (dois ou mais argumentos), maxnonnull na página 280] de mesmo nome. • em um contexto de derivação, essa função não aceita um campo de string ou de valor de data como argumento. Consulte também Funções de agregação para medições e derivações na página 160 min (um argumento) na página 171 mean (um argumento) Objetivo: Calcular a média (média geral) de valores não nulos em um campo (possivelmente por grupo ou segmento). Sintaxe mean(x) Argumentos Tipo Nome Descrição numérico x O campo cuja média vai ser calculada Resultado Tipo Descrição real A média dos valores não nulos no campo x (possivelmente por grupo ou segmento) Observação: Atenção para não confundir essa função aggregation com a função multi-argument [consulte mean (dois ou mais argumentos), meannonnull na página 281] de mesmo nome. Consulte também Funções de agregação para medições e derivações na página 160 median na página 171 mode na página 172 170 Portrait Miner 7.0A Capítulo 14: Funções de agregação median Objetivo: Calcular a mediana (valor médio) dos valores não nulos em um campo (possivelmente por grupo ou segmento). Sintaxe median(x) Argumentos Tipo Nome Descrição inteiro, real, ou string x O campo cuja mediana será calculada Resultado Tipo Descrição como entrada O valor da mediana dos valores não nulos no campo x (possivelmente por grupo ou segmento) Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 mean (um argumento) na página 170 mode na página 172 min (um argumento) Objetivo: Calcular o valor mínimo não nulo em um campo (possivelmente por grupo ou segmento). Sintaxe min(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo cujos valores serão comparados Resultado Guia de referência de comando de compilação de dados e do TML 171 mode Tipo Descrição como entrada O valor não nulo mínimo no campo x (possivelmente por grupo ou segmento) Observação: • Atenção para não confundir essa função aggregation com a função multi-argument [consulte min (dois ou mais argumentos), minnonnull na página 281] de mesmo nome. • em um contexto de derivação, essa função não aceita um campo de string ou de valor de data como argumento. Consulte também Funções de agregação para medições e derivações na página 160 max (um argumento) na página 169 mode Objetivo: Calcular o modo (valor mais comum) dos valores não nulos em um campo (possivelmente por grupo ou segmento). Sintaxe mode(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo cujo modo será calculado Resultado Tipo Descrição como entrada O modo dos valores não nulos no campo x (possivelmente por grupo ou segmento) Observação: • No caso de um empate pelo valor mais comum, a função retorna o número menos repetido, a data de empate mais antiga ou a string mais recente alfabeticamente. • Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 mean (um argumento) na página 170 172 Portrait Miner 7.0A Capítulo 14: Funções de agregação median na página 171 moderatio na página 173 moderatio Objetivo: Calcular a proporção de registros não nulos contendo o valor não nulo mais comum em um campo (possivelmente por grupo ou segmento). Sintaxe moderatio(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O campo cuja razão do modo será calculada Resultado Tipo Descrição real A razão do modo do campo x (possivelmente por grupo ou segmento) Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 mode na página 172 percentage Sintaxe percentage() Objetivo: Calcular o número de registros em um segmento da tabela de referência cruzada, como porcentagem do total. Argumentos Nenhum Resultado Guia de referência de comando de compilação de dados e do TML 173 percentagerate Tipo Descrição real A porcentagem de registros (possivelmente por grupo ou segmento). Observação: Só é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreamento para o qstrack ou em um arquivo de seleções para o qsselect. Consulte também Funções de agregação para medições e derivações na página 160 percentagerate Objetivo: Calcular, para um campo binário (1/0), a proporção de registros não nulos contendo o valor 1, como uma porcentagem. Sintaxe percentagerate(x) Argumentos Tipo Nome Descrição numérico x O campo binário a ser considerado Resultado Tipo Descrição real A porcentagem de registros em um campo binário com o valor 1 (possivelmente por grupo ou segmento) Observação: Não é possível usar essa função em um arquivo de agregações [consulte Usando funções de agregação e as cláusulas where e default na página 152] ou arquivo de estatísticas [consulte Avaliação das estatísticas do focus: a instrução calculate na página 156] para o qsmeasure ou na janela Dados Agregados equivalente ou em um arquivo estatístico para o qstrack. Consulte também Funções de agregação para medições e derivações na página 160 174 Portrait Miner 7.0A Capítulo 14: Funções de agregação segindex Objetivo: Gerar um número de índice representando um segmento. Sintaxe segindex() Argumentos Nenhum Resultado Tipo Descrição inteiro Um número positivo identificando, de forma única, um segmento dentro da tabela de referência cruzada Observação: • Havendo segmentos nulos, não classificados ou ocultos em uma visualização da tabela de referência cruzada, eles ainda recebem um índice de segmento, por isso, pode parecer haver intervalos na sequência dos índices visíveis. • Não é possível usar essa função em um arquivo de agregações [consulte Usando funções de agregação e as cláusulas where e default na página 152] ou arquivo de estatísticas [consulte Avaliação das estatísticas do focus: a instrução calculate na página 156] para o qsmeasure ou na janela Dados Agregados equivalente ou em um arquivo estatístico para o qstrack. Exemplo R–2: Marcação de decis aproximados É possível guardar um campo "meucampo" em 10 bins iguais de população e depois derivar um campo "decil": segindex() by myfield Consulte também Funções de agregação para medições e derivações na página 160 bin na página 324 significance Objetivo: Calcular a significância estatística de qualquer discrepância entre o valor médio de um campo para um segmento na tabela de referência cruzada e o valor médio do mesmo campo para toda a população. Sintaxe significance(x) Argumentos Guia de referência de comando de compilação de dados e do TML 175 stdev Tipo Nome Descrição numérico x O campo a ser considerado Resultado Tipo Descrição real Um valor entre -1 e 1, cujo sinal indica a direção na qual o segmento médio de x se desvia da média da população de x e cujo valor absoluto indica a significância desse desvio, tendo em conta o tamanho do segmento Observação: Não é possível usar essa função em um arquivo de agregações [consulte Usando funções de agregação e as cláusulas where e default na página 152] ou arquivo de estatísticas [consulte Avaliação das estatísticas do focus: a instrução calculate na página 156] para o qsmeasure ou na janela Dados Agregados equivalente ou em um arquivo estatístico para o qstrack. Consulte também Funções de agregação para medições e derivações na página 160 confintlower na página 163 confintupper na página 164 stdev Objetivo: Calcular o desvio padrão dos valores não nulos em um campo (possivelmente por grupo ou segmento). Sintaxe stdev(x) Argumentos Tipo Nome Descrição numérico x O campo cujo desvio padrão será computado Resultado Tipo Descrição real O desvio padrão dos valores não nulos no campo x (possivelmente por grupo ou segmento) Consulte também 176 Portrait Miner 7.0A Capítulo 14: Funções de agregação Funções de agregação para medições e derivações na página 160 sum (um argumento) Objetivo: Calcular a soma dos valores não nulos em um campo (possivelmente por grupo ou segmento). Sintaxe sum(x) Argumentos Tipo Nome Descrição numérico x O campo cujos valores serão somados Resultado Tipo Descrição como entrada A soma dos valores não nulos no campo x (possivelmente por grupo ou segmento) Observação: • Atenção para não confundir essa função aggregation com a função multi-argument [consulte sum (dois ou mais argumentos), sumnonnull na página 286] de mesmo nome. • Note que quando a função de agregação sum é aplicada a um conjunto de registros vazios (por exemplo, como resultado do filtro de registro), o resultado é nulo. Normalmente, esse comportamento é evitado configurando o valor padrão para 0. Consulte também Funções de agregação para medições e derivações na página 160 variance Objetivo: Calcular a variação estatística dos valores não nulos em um campo (possivelmente por grupo ou segmento). Sintaxe variance(x) Argumentos Tipo Nome Descrição numérico x O campo cuja variação será computada Guia de referência de comando de compilação de dados e do TML 177 variance Resultado Tipo Descrição real A variação dos valores não nulos no campo x (possivelmente por grupo ou segmento) Consulte também Funções de agregação para medições e derivações na página 160 178 Portrait Miner 7.0A Capítulo Linguagem de Campo Derivado (FDL) Nesta seção: • Sobre Linguagem de Campo Derivado (FDL) . . . . . . . .180 15 Sobre Linguagem de Campo Derivado (FDL) Sobre Linguagem de Campo Derivado (FDL) A Linguagem de Campo Derivado (FDL) é uma linguagem simples, para especificar a criação de novos campos nos focus do Portrait Miner. É possível usar a FDL no Visualizador de Dados No Decision Studio, os assistentes de Derivar Campos e Agregar Registros e os comandos de compilação de dados do Portrait Miner: qsderive, qsmeasure, qstrack e qsselect. É possível usar a FDL para: • • • • Transformar, combinar e realizar diversas outras computações em campos existentes em um focus Dividir um focus em um conjunto de amostras aleatórias. Definir segmentos e modelos preditivos Selecionar registros de acordo com um critério de sua escolha Usa-se normalmente em expressões simples, "de uma linha", como as descritas em Expressões básicas na página 184, mas também é possível usar para construir scripts com caminhos de execução complexos e dependentes de dados. A sintaxe FDL inclui: • Operadores para aritmética [consulte Operadores aritméticos na página 193]. • Operadores para comparação [consulte Operadores relacionais na página 194] e para combinar expressões lógicas [consulte Operadores lógicos na página 196]. • Duas construções alternativas para uma avaliação condicional de instruções: if...then...else e case [consulte Expressões Condicionais na página 185]. • Um conjunto abrangente de funções internas [consulte Funções internas na página 197]. • A capacidade de encapsular transformações comuns como funções definidas pelos usuários [consulte Funções definidas pelo usuário na página 190], para reutilização e compartilhamento. • Variáveis, para manter valores para a reutilização em um script FDL, incluindo (em alguns contextos) variáveis "acumuladoras" globais [consulte Variáveis globais no Decision Studio na página 189]. • Uma recurso para incorporar tabelas de referência cruzada em derivações . Consulte também Sobre Transaction Measurement Language na página 146 Expressões na página 184 180 Portrait Miner 7.0A Capítulo Sintaxe FDL Nesta seção: • • • • • • • • • • • Tipos de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182 Expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184 Expressões Condicionais . . . . . . . . . . . . . . . . . . . . . . . .185 Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188 Funções definidas pelo usuário . . . . . . . . . . . . . . . . . . .190 Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . .193 Operadores relacionais . . . . . . . . . . . . . . . . . . . . . . . . . .194 Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196 Precedência de operador . . . . . . . . . . . . . . . . . . . . . . . . .197 Funções internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197 Palavras reservadas em FDL . . . . . . . . . . . . . . . . . . . . . .204 16 Tipos de Dados Tipos de Dados O FDL é compatível com os seguintes tipos de dados básicos [consulte Sobre Linguagem de Campo Derivado (FDL) na página 180]: Tipo Descrição Exemplos (como literais de FDL) inteiro Um número sem parte fracional (entre -2 147 483 647 e 2 147 483 646) 78004, -100 real Um número com parte 42,3, -0,56 fracionária, representado internamente como número de "ponto flutuante", com precisão de 15 dígitos (entre e ou 0) data Uma data/hora entre 1507 d.C e #2009/01/01, 3015 d.C, com uma precisão de #2009/01/01:16:01:39 um segundo string Uma string de caractere, representando dados textuais smallinteger Um número pequeno sem parte 42, -1 fracional (entre qsminsmallint e qsmaxsmallint) "hello" Observação: • Se for usado um valor inteiro literal (tal como 12345678910) que é grande demais para um tipo de dado integer, haverá uma sobrecarga. Muitas vezes é possível resolver esse ponto se for usado um valor real: (nesse caso, 12345678910,0). • O tipo smallinteger tem uma aplicabilidade limitada dentro do Portrait Miner e só deve ser usado se absolutamente necessário. Em geral, prefira um tipo integer. O valor nulo Além dos valores comuns para cada um dos tipos de dados básicos, é possível um campo ou expressão do tipo integer, real, date ou string assumir o valor especial null. O valor nulo representa sempre um valor desconhecido (devido à falta de dados, por uma sobrecarga em um cálculo — como uma divisão por zero — ou por outro motivo). É distinto tanto do zero como da string vazia "". As funções FDL e os operadores preservam a incerteza introduzida por um argumento ou operando nulo, muitas vezes dando o valor nulo como resultado. Existem, no entanto, funções — em especial isnull e algumas funções de agregação — que lidam especialmente com o valor nulo. Exemplos 182 Portrait Miner 7.0A Capítulo 16: Sintaxe FDL ? 1 + null é igual a null. 1 != null é igual a null. 1 < null é igual a null. null = null é igual a null. null != null é igual a null. false ou null é igual a null. true e null é igual a null. true ou null é igual a true. false e null é igual a false. Consulte também ifnull, nvl na página 208 Dados booleanos Não existe um tipo de dado booleano (true/false) formal em FDL. No entanto, é possível tratar um campo inteiro (ou variável) contendo somente os valores 0 e 1 ou uma expressão lógica, como Income < 10000, como se fosse do tipo booleano. As expressões lógicas são avaliadas como 1 quando são verdadeiras e 0 quando são falsas. Expressões condicionais usam esses valores para determinar qual de duas ou mais expressões vão avaliar. Operadores lógicos também trabalham com esses valores. Um valor 0 em um campo inteiro ou variável é interpretado como "false" e qualquer outro valor (não nulo) é interpretado como "true". Além disso, é possível usar as palavras-chave true e false como literais booleanos (que significam 1 e 0, respectivamente). Compatibilidade de tipo Os tipos de dados integers e reais são indicados como compatíveis por tipo, é possível usar um valor integer sempre que for necessário um valor real (mas não vice-versa), por exemplo, como um argumento para uma função. Os tipos de dados date e string só são compatíveis por tipo entre eles. Os operandos de um operador aritmético binário [consulte Operadores aritméticos na página 193] ou operador relacional [consulte Operadores relacionais na página 194] têm de ser compatíveis por tipo. Na verdade, no caso de um operador aritmético binário, é necessário que ambos os operandos sejam numéricos; o resulto é real a não ser que ambos os operadores seja integers. Da mesma forma, as expressões de resultados em uma expressão if ou case [consulte Expressões Condicionais na página 185] têm de ser compatíveis por tipo para ser possível determinar o tipo do resultado antes da avaliação. Se as expressões de valores integers e real estão misturadas, o resultado é de valor real. Guia de referência de comando de compilação de dados e do TML 183 Conversão de tipo Conversão de tipo Além de usarem uma conversão implícita de tipo de dado (que ocorre quando é forçado por um tipo de dado de uma expressão), é possível converter explicitamente os tipos de dados com as funções FDL tointeger, toreal, todate e tostring. Observação: Ao converter de uma string para um numeric, quaisquer caracteres não numéricos à direita são ignorados. Expressões Uma expressão FDL pode ser uma das seguintes: • • • • Uma expressão básica [consulte Expressões básicas na página 184] Uma expressão condicional [consulte Expressões Condicionais na página 185] Uma inicialização ou atribuição de variáveis [consulte Variáveis na página 188] Uma lista de expressões separadas por ponto e vírgula (uma lista de expressões), fechadas entre parênteses Cada expressão tem um tipo de dado associado [consulte Tipos de Dados na página 182] e podem ser avaliadas. Para avaliar uma lista de expressões em um determinado contexto, avalie cada expressão constituinte por vez, da primeira à última; o valor da lista de expressões como um todo é o último valor computado. Observação: • O tipo de dado é deduzido automaticamente. Não é possível especificar sem ser com uma variável local do tipo necessário ou usando uma expressão que force o tipo. Por exemplo, a seguinte expressão força o tipo a ser real: if false then 0,0 else... • Por padrão, você usará listas de expressões em combinação com atribuições de variáveis. Expressões básicas Uma expressão básica pode ser uma das seguintes: • Um identificador, opcionalmente contido entre aspas simples, por exemplo, 'CustomerID'. É necessário fechar um identificador entre aspas simples se não começar por uma letra ("A" — "Z" ou "a" — "z"), contiver caracteres que não sejam letras, dígitos e sublinhados ou coincidir com uma palavra reservada TML ou FDL (ou diferir apenas por ser maiúscula ou minúscula). Um identificador não deve ter mais de 128 caracteres. • Um literal numérico, por exemplo, 30, -3,28 ou 3,1e8 (o último representa • Um literal de string, contido entre aspas duplas, por exemplo, "Uma string" • Um literal de data, com prefixo "#," por exemplo, #2004/03/16 ou #2004/03/16:09:12:13 184 Portrait Miner 7.0A Capítulo 16: Sintaxe FDL • A palavra-chave "null" (consulte O valor nulo na página 182) • Uma aplicação de função, formada por um nome de função (um identificador) seguido por uma lista de argumentos separados por vírgulas (expressões) em parênteses; por exemplo, mean(IncomeA + IncomeB, TotalEstIncome) • Uma expressão aritmética, formada por uma expressão de valor numérico conectados por operadores aritméticos [consulte Operadores aritméticos na página 193], por exemplo, 365 / 52 • Uma relação, formada por expressões de valor numérico ou string conectados por operadores relacionais [consulte Operadores relacionais na página 194], por exemplo, Age > 30 ou 'State' = "New York" • Uma expressão lógica, formada por expressões relacionais ou outras de valor booleano vinculadas por operadores lógicos [consulte Operadores lógicos na página 196], por exemplo, (Income > 250000) e (MaritalStatus = "Solteiro") • Um identificador estatístico, formado por uma palavra-chave da TML STATISTIC seguido por um ponto seguido por um identificador, por exemplo, STATISTIC.AverageIncome (somente em um arquivo de agregações TML) • Uma estatística de campo — somente em uma derivação do Decision Studio, um arquivo de derivação qsderive ou um arquivo de seleções qsselect Observação: • Os identificadores FDL são sensíveis a maiúsculas e minúsculas. Por exemplo, as expressões CustomerID e CUSTOMERID se referem a campos diferentes, enquanto as expressões isnull(Age) e IsNull(Age) envolvem funções diferentes. • Um literal numérico é avaliado com um integer se não contiver pontos decimais e não usar notação científica. Caso contrário, é avaliado com um número real. • É possível a um literal de string conter qualquer caractere que não aspas duplas (") e caracteres newline. • Uma literal de data é inicialmente avaliada em um formato AMD [consulte Formatos de data na página 55]; se falhar, é avaliado de acordo com a definição de sua preferência read . • Além de inserir espaços entre os elementos sintáticos, é possível incluir comentários, começando com uma barra dupla ("//") e continua até o final da linha. Por exemplo, // This is a comment. 2 + 2 // This is a comment. Consulte também Palavras reservadas em FDL na página 204 Palavras reservadas em TML na página 147 Expressões Condicionais Em FDL, existem duas formas principais de avaliar condicionalmente uma expressão: a expressão if e a expressão case. Guia de referência de comando de compilação de dados e do TML 185 A expressão if Consulte também Sobre Linguagem de Campo Derivado (FDL) na página 180 Expressões na página 184 A expressão if Se a condição (uma expressão FDL retornando um valor booleano [consulte Dados booleanos na página 183]) for verdadeira, a expressão após then é avaliada; caso contrário, a expressão após else é avaliada. O valor da expressão if é o valor da expressão avaliada. Observação: • É necessário que as expressões após then e else sejam compatíveis por tipo [consulte Tipos de Dados na página 182]. • Se for omitida a parte "else" de uma expressão e a condição for falsa, o valor da expressão if é nulo [consulte O valor nulo na página 182]. • Uma condição nula [consulte O valor nulo na página 182] é tratada pela expressão if como se fosse falsa. Essa é uma exceção à regra geral, pois a incerteza introduzida pelo valor nulo é preservada pelas expressões FDL. É possível que isso leve a resultados inesperados: por exemplo, quando Age é nula, as seguintes expressões (a princípio equivalentes) geram o valor nulo, 0 E 1, respectivamente: Age > 40 if Age > 40 then 1 else 0 if Age <= 40 then 0 else 1 • É possível testar várias condições usando expressões if aninhadas — expressões if onde a expressão após then ou else é também uma expressão if. Se a expressão após then é uma expressão if, ela deve ser contida entre parênteses para evitar ambiguidade. Se preferir, é possível usar a expressão case [consulte A expressão case na página 187]. • Se for possível expressar sua condição como x = 0 (ou ) para algum número x, também é possível usar a função FDL interna cond em vez de uma expressão if. Exemplos if Age < 40 then "Jovem" if Age < 40 then "Jovem" else "Sênior" if Age > 40 then "Jovem" else if Age < 60 then "Meia-Idade" else "Sênior" if (Age >= 13 and Age < 20) then "Adolescente" if isnull(Age) then mean(Age) else Age if Responder then RespondDate else StartDate if match(PostalCode, "^EH") then "Y" else "N" 186 Portrait Miner 7.0A Capítulo 16: Sintaxe FDL if StartDate < #1998/09/08 then "Loyal" else "Recente" A expressão case Se a primeira condição (uma expressão FDL retornando um valor booleano [consulte Dados booleanos na página 183]) for verdadeira, a expressão correspondente (à direita dos dois pontos) é avaliada e retornada como o valor da expressão case. Caso contrário, a condição seguinte é testada; sendo verdadeira, a expressão correspondente é avaliada e retornada como o valor de uma expressão case. Caso contrário, a condição seguinte é testada, e assim por diante. A palavra-chave especial default é interpretada com uma expressão sempre verdadeira: normalmente seria usada como a última condição em uma expressão case (quaisquer condições subsequentes seriam ignoradas). Observação: • É necessário que todas as expressões que ocorrem à direita dos dois pontos sejam compatíveis por tipo [consulte Tipos de Dados na página 182]. • Se nenhuma das condições for verdadeira (e não existir uma palavra-chave default), o valor da expressão case é nulo [consulte O valor nulo na página 182]. • Uma condição nula [consulte O valor nulo na página 182] é tratada pela expressão case como se fosse falsa. Essa é uma exceção à regra geral, pois a incerteza introduzida pelo valor nulo é preservada pelas expressões FDL. Por exemplo, quando Age é nulo, a expressão seguinte gera o valor 3: case Idade > 40 : 1; Idade <= 40 : 2; default : 3; • Se for usada uma expressão case em uma lista de expressões ou aninhar uma expressão case como uma condição (dentro de uma expressão if ou outra expressão case), ela deve ser contida entre parênteses para evitar ambiguidade. Exemplos case Age < 40: "Jovem"; default: "NãoJovem"; case Response = "Exc": 7; Response = "M. Sat": 6 Response = "Sat": 5; Guia de referência de comando de compilação de dados e do TML 187 Variáveis Response = "F. Sat": 4; Response = "Fraco": 3; Response = "Mau": 2; default: 1; Variáveis Uma variável em FDL é uma localização temporária de armazenamento para valores real, integer, string ou date. É possível usar uma variável local para avaliar uma subexpressão% complicada — particularmente útil se a mesma subexpressão ocorrer mais de uma vez% — ou para avaliar uma expressão envolvendo uma função de número aleatório, para evitar a alteração de valor de uma avaliação para outra. Também é possível usar variáveis globais no Decision Studio [consulte Variáveis globais no Decision Studio na página 189] e variáveis de estado em arquivos de rastreio TML [consulte Variáveis de estado em Transaction Measurement Language (TML) na página 189] para levar informação de um registro para outro. Para atribuir um valor a uma variável, use a seguinte sintaxe: A primeira atribuição é uma inicialização e determina a classe da variável% — local (sem palavra-chave), global ou de estado. As palavras-chave global ou state são usadas somente em conjunto com a primeira atribuição para uma variável global ou de estado (a inicialização). O identificador [consulte Expressões básicas na página 184] é o nome da variável (não deve coincidir com um nome de campo no focus). Para qualquer classe de variável, seu tipo de dado [consulte Tipos de Dados na página 182] corresponde ao primeiro valor que lhe for atribuído. O valor de uma expressão de atribuição é simplesmente o valor da expressão à direita do sinal ":=". Por exemplo, a seguinte lista de expressões atribui aleatoriamente o valor 1 (para 20% dos registros), 2 (para outros 20% dos registros) ou 0 (para os demais registros): x := rndUniform(); case x < 0,2 : 1; x < 0,4 : 2; default : 0; Podia ser escrita de forma equivalente nessa forma mais compacta: 188 Portrait Miner 7.0A Capítulo 16: Sintaxe FDL case ( x := rndUniform() ) < 0,2 : 1; x < 0,4 : 2; default : 0; No entanto, a seguinte lista de expressões gera um resultado diferente (e provavelmente indesejado): case rndUniform() < 0,2 : 1; rndUniform() < 0,4 : 2; default : 0; Variáveis globais no Decision Studio As variáveis são locais por padrão. Uma variável local é destruída assim que a última expressão (a mais externa) na lista de expressões [consulte Expressões na página 184] é avaliada — A próxima vez que a mesma variável for usada, será reinicializada. Uma variável local não pode levar informações de um registro para outro. Por exemplo, a seguinte lista de expressões de derivação do campo produz um campo com 1 em todos os registros: i := 0; i := i + 1 Uma variável global difere de uma variável local pois não é destruída até que o Decision Studio ou o comando de compilação de dados calcule os valores do campo de todos os registros. A inicialização só acontece uma vez, para o primeiro registro no focus. Por exemplo, a seguinte lista de expressões de derivação de campo produz um campo de índice, com 1 no primeiro registro, 2 no segundo e assim por diante: global i := 0; i := i + 1 É possível usar uma variável global na lista de expressões de derivação de campo em uma derivação do Decision Studio, no arquivo de derivações para qsderive ou a janela Campos Derivados equivalente, em um arquivo de rastreios para o qstrack,ou em um arquivo de seleções para o qsselect. Variáveis de estado em Transaction Measurement Language (TML) É possível usar uma variável de estado em uma definição de campo TML no arquivo de rastreios qstrack. Uma variável de estado difere de uma variável local ou uma variável global pois não é destruída até que o qstrack tenha calculado todos os valores de campo para o grupo atual (como definido pelo campo-chave). A inicialização ocorre uma vez por cada grupo. Por exemplo, a seguinte definição de campo define um campo de balanço atualizado, assumindo que o campo "Depósito" contém uma quantia depositada em uma transação (ou um valor negativo para um levantamento) e o campo"InitialBalance" contém o balanço inicial para o cliente (talvez de uma tabela de cliente adicionada anteriormente): Guia de referência de comando de compilação de dados e do TML 189 Funções definidas pelo usuário create Balance := ( state bal := InitialBalance; bal := bal + Deposit ) Funções definidas pelo usuário Para definir uma função FDL que possa ser usada da mesma forma que uma função interna [consulte Funções internas na página 197], use a seguinte sintaxe: O identificador [consulte Expressões básicas na página 184] após a palavra-chave "function" é o nome da função. A lista de argumentos (formais) vem a seguir: Cada argumento formal (que não é precedido por uma palavra-chave de "field" atua como uma variável local [consulte Variáveis na página 188] inicializada com o valor do argumento correspondente quando a função é aplicada. O tipo [consulte Tipos de Dados na página 182] de um argumento formal é o tipo especificado na definição de função, se presente; caso contrário, é a do argumento usado quando a função é aplicada. Note que são necessários os parênteses mesmo sem argumentos formais. Seguindo a lista de argumentos vem uma lista opcional de atributos de função [consulte Function attributes na página 192] e depois o corpo de definição da função. A lista de expressão [consulte Expressões na página 184] é efetivamente prefixada com atribuições variáveis locais, correspondendo a argumentos formais (que não os precedidos por uma palavra-chave "field") antes de serem avaliados para dar o valor de retorno para a função. O tipo de valor de retorno corresponde ao da última expressão. Exemplos Definir uma função para substituir os zeros no resultado de uma expressão (de qualquer tipo) com o resultado de outra expressão: function replaceZeros(expr1, expr2) { if expr1 = 0 then expr2 else expr1 } 190 Portrait Miner 7.0A Capítulo 16: Sintaxe FDL Uma função que pega um argumento de string e o devolve com a primeira letra maiúscula: function titleCase(string text) { concat(toupper(left(text, 1)), right(text, strlen(text) - 1)); } Observação: • Ao especificar o tipo de um argumento de função, use "real", "integer", "string" ou "date." • É possível incluir estatísticas de campo em uma definição de função, mas cada argumento de função usado em uma estatística de campo deve ser precedido por uma palavra-chave "field". Por exemplo, para comparar um valor com um resumo sobre todo o focus: function MyBand(real field x) { averageX := mean(x); stdevX := stdev(x); case x < averageX - stdevX : "Lower"; x > averageX + stdevX : "Upper"; default: "Mid"; } • É possível incluir definições de função no início da lista de expressões que definem um campo derivado. Funções definidas dessa forma são locais para a derivação de campo. Também é possível definir funções acessíveis globalmente, armazenando-as em um arquivo (ou arquivos) em uma pasta listada na preferência de bibliotecas de derivação . No Decision Studio, no painel Família de Função da caixa de diálogo Funções de Derivação no Visualizador de Dados, as funções em um arquivo chamado classe.fdl aparece na classe chamada classe. Por exemplo, funções em um arquivo com o nome Conditional.fdl aparecem na classe Conditional. É possível reutilizar um nome de classe existente para expandir uma classe com suas próprias funções definidas pelo usuário ou criar sua classe usando um novo nome. Ao usar o comando de compilação de dados do Portrait Miner, o qsmeasure, a janela Agregar Registros equivalente ou o comando de compilação de dados qstrack, é possível especificar um arquivo que contenha definições de funções globais adicionais. • Não é possível definir funções de agregação em um contexto de medição, isto é, em um arquivo de agregações [consulte Usando funções de agregação e as cláusulas where e default na página 152], arquivo de estatísticas [consulte Avaliação das estatísticas do focus: a instrução calculate na página 156] para qsmeasure ou na janela Agregar Registros equivalente ou em um arquivo de estatística para qstrack. • Se a lista de expressão terminar com um caractere alfabético, ele deve ser separado da chave por ponto e vírgula ou espaços em branco. Guia de referência de comando de compilação de dados e do TML 191 Function attributes Function attributes Especifica atributos da função da seguinte forma: Atributos úteis são: synopse e description. Esses atributos fornecem uma forma padrão de tornar a função "autodocumentável." Se uma função é instalada em uma pasta listada nas preferências de bibliotecas de derivação, a sinopse é exibida quando a função for selecionada no painel Funções da caixa de diálogo Funções de Derivação no Visualizador de Dados. Ao clicar no botão Detalhes, a descrição é exibida. O texto da sinopse deve ser curto, mas o texto de descrição pode ser maior. Por exemplo: function nvl(testNull, replaceValue) [ synopsis = "Substituir valores nulos" description = "A função nvl() substitui valores nulos...strings." ] (Note que o atributo de descrição deve estar todo na mesma linha.) element_names. Em um arquivo de agregações, é possível usar uma função com o atributo element_names para dividir uma agregação para criar vários campos [consulte Dividir agregações: a cláusula by na página 154]. O valor desse atributo é uma string que contém uma lista de nomes separados por vírgulas que, por sua vez, estão associados aos valores de retorno 1, 2, ..., da função, na ordem pela qual estão listados. Por exemplo, o atributo element_names da função abaixo associa os nomes "Baixo", "Médio" e "Elevado" aos valores de retorno 1, 2 e 3, respectivamente: function band(x) [ element_names = "Baixo,Médio,Alto" ] { clamp(floor(x / 1000), 0, 2) + 1 } O atributo element_names da função abaixo associa os nomes "Norte", "Sul", "Leste" e "Oeste" aos valores de retorno 1, 2, 3 e 4, respectivamente: function StoreGroupFunction( Store ) [ 192 Portrait Miner 7.0A Capítulo 16: Sintaxe FDL element_names = "Norte, Sul, Leste, Oeste" ] { case Store = "0000" or Store = "0800" : 1; Store = "0300" or Store = "0600" or Store = "0700" : 2; Store = "0100" or Store = "0400" : 3; default : 4; } Operadores aritméticos Exceto o operador menos unário, que prefixa seu único operando, todos os operadores aritméticos FDL são operadores binários infixos, ou seja, são escritos entre seus dois operandos. Operador Operandos Resultado + (adição) numérico A soma dos operandos - (subtração) numérico O resultado de subtrair o segundo operando ao primeiro - (menos unário) numérico O negativo do operando * (multiplicação) numérico O produto dos operandos / (divisão) numérico O resultado (real) da divisão do primeiro operando pelo segundo div (divisão de número inteiro) inteiro O resultado (inteiro) da divisão do primeiro operando pelo segundo, ignorando o resto mod (módulo) inteiro O resto na divisão do primeiro operando inteiro pelo segundo (o módulo), com o mesmo sinal do primeiro operando — por exemplo, 9 % 7 é igual a 2 mas -9 % 7 é igual a -2 Exemplos 2 + 5 é igual a 7. 2 - 5 é igual a -3. Guia de referência de comando de compilação de dados e do TML 193 Operadores relacionais - (2 + 5) é igual a -7. 2 * 5 é igual a 10. 2 / 5 é igual a 0,4. 2 div 5 é igual a 0. 2 mod 5 é igual a 2. 5 % 2 é igual a 1. Observação: • Os operadores de adição, subtração, menos unário e de multiplicação preservam o tipo de seus operandos (que são de tipo compatível) [consulte Compatibilidade de tipo na página 183]). Se um operando for integer e o outro for um número real, o resultado é real. • Se o segundo operando do operador de divisão, de divisão de número inteiro ou de módulo, for zero, o resultado é nulo [consulte O valor nulo na página 182], uma vez que a divisão por zero é indefinida. • mod exige operandos integer. • É possível usar também % em vez de mod. Consulte também Operadores lógicos na página 196 Precedência de operador na página 197 Operadores relacionais na página 194 Operadores relacionais Todos os operadores relacionais FDL são operadores binários infixos, ou seja, são escritos entre seus dois operandos. 194 Operador Operandos Resultado < (menor que) inteiro, real, data ou string "True" se o primeiro operando for menor que o segundo; "false" se o primeiro operando for maior ou igual ao segundo <= (menor ou igual a) inteiro, real, data ou string "True" se o primeiro operando for menor ou igual ao segundo; "false" se o primeiro operando for maior que o segundo > (maior que) inteiro, real, data ou string "True" se o primeiro operando for maior que o segundo; "false" se o primeiro operando for menor ou igual ao segundo Portrait Miner 7.0A Capítulo 16: Sintaxe FDL Operador Operandos Resultado >= (maior ou igual a) inteiro, real, data ou string "True" se o primeiro operando for maior ou igual ao segundo; "false" se o primeiro operando for menor que o segundo = (igualdade) inteiro, real, data ou string "True" se ambos os operandos tiverem o mesmo valor; "false" se os operandos apresentarem valores distintos. Para tipos string, a comparação ignora o caractere de espaço à direita em ambos os operandos. != (desigualdade) inteiro, real, data ou string "True" se os operandos apresentarem valores distintos; "false" se ambos os operandos tiverem o mesmo valor. Para tipos string, a comparação ignora o caractere de espaço à direita em ambos os operandos. Exemplos 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" é igua a 1 ("TRUE"). Observação: • Os operandos de um operador relacional binário devem ser de tipos compatíveis [consulte Compatibilidade de tipo na página 183]. • Ao comparar datas, "menor que" significa anterior. Ao comparar strings, "menor que" significa anterior alfabeticamente (ou, mais especificamente, anterior na representação de caracteres). Acontece o mesmo com "maior que", etc. • Também é possível usar == ou eq em vez de = e <> em vez de !=. Guia de referência de comando de compilação de dados e do TML 195 Operadores lógicos Consulte também Operadores aritméticos na página 193 Dados booleanos na página 183 Operadores lógicos na página 196 Operadores lógicos O operador de negação lógica prefixa seu único operando, enquanto os operadores de disjunção e conjugação lógica são operadores binários infixos, ou seja, são escritos entre seus dois operandos. Operador Operandos Resultado and (conjugação lógica) boolean "True" se ambos os operandos forem verdadeiros; "false" se um dos operandos for falso or (disjunção lógica) boolean "True" se um dos operandos for verdadeiro; "false" se ambos os operandos forem falsos not (negação lógica) boolean "True" se o operando for falso; "false" se o operando for verdadeiro Exemplos ("A" = "A") or (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"). Observação: • Atualmente, não existe um tipo de dado booleano [consulte Dados booleanos na página 183] em FDL, de forma que os operandos para operadores lógicos são, na verdade, integers. Não se deve, porém, aplicar esses operadores para quaisquer números inteiros. • Também é possível usar and em vez de and, || em vez de or e ! em vez de not. Consulte também 196 Portrait Miner 7.0A Capítulo 16: Sintaxe FDL Operadores aritméticos na página 193 Precedência de operador na página 197 Operadores relacionais na página 194 Precedência de operador Na ausência de parênteses, as operações FDL em uma expressão são realizadas por ordem de precedência de operador, da mais alta à mais baixa: Classe Operadores Menos unário - Operadores de multiplicação * / div mod Operadores de adição + - Operadores relacionais < <= > >= != = Negação lógica not Operadores binários lógicos and or Se há uma ligação de precedência, as operações são realizadas da esquerda para a direita. As subexpressões entre parênteses são sempre avaliadas em primeiro lugar. Exemplos -5 + 12 / 4 * 2 + 20 * 3 é igual a 61. ou seja, a expressão é avaliada como: -5 + ((12 / 4) * 2) + (20 * 3) Movendo os parênteses: -(5 + 12 / (4 * 2) + 20) * 3 é igual a -79.5. Consulte também Operadores aritméticos na página 193 Operadores lógicos na página 196 Operadores relacionais na página 194 Funções internas O FDL inclui um conjunto abrangente de funções internas. Funções condicionais Guia de referência de comando de compilação de dados e do TML 197 Funções internas Função Descrição clamp Restringir um número a um intervalo específico. cond Produzir um de dois resultados dependendo se uma expressão é zero ou diferente de zero. iff Produzir um de dois resultados dependendo se uma expressão é zero ou diferente de zero. ifnull, nvl Substituir o valor nulo. isnull Testar se um valor é nulo. isselected Marcar os registros selecionados atualmente. replace Substituir um número se não estiver dentro do intervalo fornecido. Funções de conversão de tipos de dados Função Objetivo todate Converte um valor para uma data. tointeger Converte um valor para um número integer. toreal Converte um valor para um número real. tostring Converte um valor para uma string. Funções para trabalhar com datas 198 Função Objetivo addcenturies, addcenturiescountbackwards Calcular uma data a partir de outra data, usando um deslocamento em séculos. adddays Calcular uma data a partir de outra data, usando um deslocamento em dias. addhours Calcular uma data a partir de outra data, usando um deslocamento em horas. addminutes Calcular uma data a partir de outra data, usando um deslocamento em minutos. addmonths, addmonthscountbackwards Calcular uma data a partir de outra data, usando um deslocamento em meses. addseconds Calcular uma data a partir de outra data, usando um deslocamento em segundos. addweeks Calcular uma data a partir de outra data, usando um deslocamento em semanas. Portrait Miner 7.0A Capítulo 16: Sintaxe FDL Função Objetivo addyears, addyearscountbackwards Calcular uma data a partir de outra data, usando um deslocamento em anos. countcenturies Calcular o período entre duas datas em séculos. countdays Calcular o período entre duas datas em dias. counthours Calcular o período entre duas datas em horas. countminutes Calcular o período entre duas datas em minutos. countseconds Contar o número de segundos entre duas datas. countweeks Calcular o período entre duas datas em semanas. countwholecenturies, countwholecenturiesbackwards Contar o número de séculos entre duas datas. countwholedays Contar o número de dias completos entre duas datas. countwholehours Contar o número de horas completas entre duas datas. countwholeminutes Contar o número de minutos completos entre duas datas. countwholemonths, countwholemonthsbackwards Contar o número de meses completos entre duas datas. countwholeseconds Contar o número de segundos entre duas datas. countwholeweeks Contar o número de semanas completas entre duas datas. countwholeyears, countwholeyearsbackwards Contar o número de anos completos entre duas datas. countyears Calcular o período entre duas datas em anos. day Obter o dia do mês de uma data. dayofweek Obter um número representante do dia da semana de uma data. gmt2edt Converter uma data na Hora de Greenwhich (GMT) para um Horário de Verão do Leste dos EUA (EDT). hour Obter as horas de uma data. minute Obter os minutos de uma data. month Obter o mês de uma data. now Obter a data e a hora atuais. Guia de referência de comando de compilação de dados e do TML 199 Funções internas Função Objetivo second Obter os segundos de uma data. today Obter a data atual. weekofyear Calcular a semana do ano de uma data, relativamente a uma data inicial específica. year Obter o ano de uma data. Funções para trabalhar com strings Função Objetivo concat Concatenar duas ou mais strings. endswith Testar se uma string termina com outra. find Testar se uma string está contida em outra. left Retornar uma substring de comprimento especificado a partir do início de uma string. mid Retornar uma substring de comprimento especificado a partir do meio de uma string. right Retornar uma substring de comprimento especificado a partir do final de uma string. soundex Reduzir cada palavra a uma string de quatro caracteres para fins de indexação. startswith Testar se uma string inicia com outra. strlen Obter o comprimento de uma string. strmember Determinar o conjunto de associação. substitute Substituir uma string por outra. substr Obter uma substring a partir de uma string. tolower Converter uma string para texto em letra minúscula. toupper Converter uma string para texto em letra maiúscula. trim Remover todos os espaços de uma string, exceto os espaços vazios entre as palavras. Expressões regulares e funções associadas 200 Função Objetivo match Testar uma string para uma coincidência de expressão regular [consulte Expressões regulares na página 266]. Portrait Miner 7.0A Capítulo 16: Sintaxe FDL Função Objetivo replaceall Substituir todas as substrings que coincidem com uma expressão regular [consulte Expressões regulares na página 266]. replacefirst Substituir a primeira substring que coincidir com uma expressão regular [consulte Expressões regulares na página 266]. Funções matemáticas e estatísticas Tipo Descrição abs Calcular o valor absoluto de um número. ceil Arredondar um número para cima, para o número inteiro mais próximo. cos Calcular o cosseno de um ângulo. exp Calcular o exponencial de um número. floor Arredondar um número para baixo, para o número inteiro mais próximo. log Calcular o logaritmo natural (base "e") de um número. log10 Calcular o logaritmo de base 10 de um número. logbase Calcular o logaritmo de um número, para uma base especificada. max (dois ou mais argumentos), maxnonnull Calcular o máximo de dois ou mais números, ou a mais recente de duas ou mais datas ou a mais recente de duas ou mais strings alfabeticamente. mean (dois ou mais argumentos), meannonnull Calcular a média (média comum) de dois ou mais números. min (dois ou mais argumentos), minnonnull Calcular o mínimo entre dois ou mais números, ou a mais recente de duas ou mais datas ou a última de duas ou mais strings alfabeticamente. normalize Normalizar valores de campo para ficarem no intervalo [0,1]. pow Calcular o resultado de elevar um número à potência de outro. product, productnonnull Calcular o produto de dois ou mais números. round Arredondar um número para o número inteiro mais próximo. sgn Calcular o signo (sinal) de um número. Guia de referência de comando de compilação de dados e do TML 201 Funções internas Tipo Descrição sin Calcular o seno de um ângulo. sqrt Calcular a raiz quadrada de um número. sum (dois ou mais argumentos), sumnonnull Calcular a soma de dois ou mais números. tan Calcular a tangente de um ângulo. Funções de amostragem de dados Função Objetivo numericTestTrainSplit Criar uma segmentação de teste/treinamento para uso na validação de modelo. numericTestTrainValidateSplit Criar uma segmentação de teste/treinamento/validação para uso na validação de modelo. sampleEqualSize Criar, aleatoriamente, um índice de segmentação para grupos de mesmo tamanho. sampleExactNumber Marcar, aleatoriamente, um número exato de clientes de uma população selecionada. sampleExactPercentage Marcar, aleatoriamente, uma porcentagem exata de clientes de uma população selecionada. sampleStratified Marcar, aleatoriamente, um número específico de clientes de um segmento e o resto da população. testTrainSplit Criar uma segmentação de teste/treinamento para uso na validação de modelo. testTrainValidateSplit Criar uma segmentação de teste/treinamento/validação para uso na validação de modelo. Funções de número aleatório 202 Função Objetivo rndBinomial Gerar um número inteiro aleatório baseado em uma distribuição binomial. rndBool Gerar 0 ou 1 aleatoriamente (com probabilidades iguais). rndExp Gerar um número positivo aleatório baseado em uma distribuição exponencial. rndGamma Gerar um número positivo aleatório baseado em uma distribuição gama. Portrait Miner 7.0A Capítulo 16: Sintaxe FDL Função Objetivo rndNormal Gerar um número aleatório baseado em uma distribuição normal. rndPoisson Gerar um inteiro não negativo aleatório, baseado em uma distribuição poissoniana discreta. rndUniform Gerar um número aleatório entre 0 e 1, baseado em uma distribuição uniforme. Funções de retorno de investimento Função Objetivo ActionROI Estimar a contribuição para o retorno de investimento (dinheiro) por cliente por efetuar ações projetadas para gerar uma resposta definitiva. ActionROIAnnualized Estimar o múltiplo para o retorno de investimento anual por cliente por efetuar ações projetadas para gerar uma resposta definitiva de um cliente. OfferROI Estimar a contribuição para o retorno de investimento por cliente por efetuar uma oferta projetada para gerar uma resposta definitiva. OfferROIAnnualized Estimar o múltiplo para o retorno de investimento anual por efetuar uma oferta projetada para gerar uma resposta definitiva de um cliente. RetentionActionROI Estimar a contribuição para o retorno de investimento (dinheiro) por cliente por efetuar ações projetadas para evitar desgastes. RetentionActionROIAnnualized Estimar a contribuição para o retorno de investimento anual por cliente por efetuar ações projetadas para evitar desgastes. RetentionOfferROI Estimar o retorno de investimento por cliente por fazer uma oferta projetada para evitar desgastes. RetentionOfferROIAnnualized Estimar o retorno de investimento anual por cliente por fazer uma oferta projetada para evitar desgastes. Funções diversas Função Objetivo dblookup Pesquisar valores em uma tabela de referência (armazenada como um focus). Guia de referência de comando de compilação de dados e do TML 203 Palavras reservadas em FDL Função Objetivo member Determinar o conjunto de associação. rankOrder, rankOrderApprox Identificar a classificação de um valor em uma lista de valores. rankOrderMean, rankOrderApproxMean Identificar a classificação de um valor em uma lista de valores. rownum Gerar o número de cada linha na tabela. Binnings Função Objetivo bin Obtém um índice do bin correspondente a um valor. Consulte também Funções definidas pelo usuário na página 190 Palavras reservadas em FDL Os seguintes tokens são palavras reservadas em FDL: accum, agg, aggregate, aggregation, and, by, case, date, default, div, double, else, eq, false, field, float, function, global, if, int, integer, long, mod, not, null, number, numeric, or, real, short, state, string, then, true, wheredate, default, div, double, else, eq, false, field, float, function, global, if, int, integer, long, mod, not, null, number, numeric, or, real, short, state, string, then, true, where e while Para usar uma palavra reservada ou uma palavra que difere somente no uso de maiúsculas e minúsculas, como um identificador [consulte Expressões na página 184] em FDL ou nome de campo ou estatística em TML, é necessário colocá-lo entre aspas simples — por exemplo, 'Date'. Observação: Apesar dos identificadores em FDL serem sensíveis a maiúsculas e minúsculas (fred e Fred são distintos), as palavras reservadas não são sensíveis a maiúsculas e minúsculas, por isso, estão reservadas em qualquer combinação: por exemplo, if, If, iF, and IF são representações do mesmo token; todas essas combinações são reservadas e não podem ser usadas como identificadores. Consulte também Sobre Linguagem de Campo Derivado (FDL) na página 180 Palavras reservadas em TML na página 147 204 Portrait Miner 7.0A Capítulo Funções condicionais Nesta seção: • • • • • • • clamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206 cond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206 iff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207 ifnull, nvl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 isnull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209 isselected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210 replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210 17 clamp clamp Objetivo: Restringir um número a um intervalo específico. Sintaxe clamp(x, min, max) Argumentos Tipo Nome Descrição numérico x O número a ser fixado como x min O limite inferior do intervalo como x max O limite superior do intervalo Resultado Tipo Descrição como entrada x se ; min se x < min; max se x > max Exemplos Fixar valores em um intervalo entre 18 e 65 inclusive, substituindo valores fora do intervalo com os limites de intervalo apropriados: CustomerAge clamp(CustomerAge,18,65) 9 18 18 18 66 65 43 43 Consulte também replace na página 210 cond Objetivo: Produzir um de dois resultados dependendo se uma expressão é zero ou diferente de zero. Sintaxe cond(cond, trueExpr, falseExpr) Argumentos 206 Portrait Miner 7.0A Capítulo 17: Funções condicionais Tipo Nome Descrição inteiro cond A expressão a testar inteiro, real, data ou string trueExpr Ramificação "true" (diferente de zero) como trueExpr falseExpr Ramificação "false" (zero) Resultado Tipo Descrição como trueExpr, falseExpr trueExpr se cond 0; falseExpr se cond = 0 Observação: Ao contrário de uma expressão if [consulte A expressão if na página 186] ou expressão case [consulte A expressão case na página 187], ambas as ramificações são avaliadas pela função cond. Mais significativamente, cond preserva a incerteza de um valor nulo [consulte O valor nulo na página 182] na condição. Se não precisar desse comportamento, use uma expressão if ou case para ser mais rápido. Exemplos Apontar para clientes com um gasto zero no 2.º Trimestre para uma campanha de correspondência: SpendQtr2 cond(SpendQtr2, "Não Enviar", "Enviar") 100.39 Não Enviar 0 Enviar -5.72 Enviar null null Consulte também clamp na página 206 iff na página 207 ifnull, nvl na página 208 replace na página 210 iff Objetivo: Produzir um de dois resultados dependendo se uma expressão é zero ou diferente de zero. Guia de referência de comando de compilação de dados e do TML 207 ifnull, nvl Sintaxe iff(logical_text, value_if_true, value_if_false) Argumentos Tipo Nome Descrição real logical_text A expressão a testar inteiro, real, data ou string value_if_true Ramificação "true" (diferente de zero) como value_if_true value_if_false Ramificação "false" (zero ou nulo) Resultado Tipo Descrição como value_if_true, value_if_false value_if_true se logical_text 0; value_if_false se logical_text = 0 ou logical_text é nulo Exemplos iff(Score > 650, "Enviar", "Não Enviar") Consulte também cond na página 206 ifnull, nvl Objetivo: Substituir o valor nulo. É possível usar nvl como alias para ifnull. Sintaxe ifnull(testNull, replaceValue) nvl(testNull, replaceValue) Argumentos Tipo Nome Descrição inteiro, real, data ou string testNull O valor a ser testado como testNull replaceValue A substituição pelo valor nulo Resultado Tipo Descrição como entrada Uma cópia do valor testNull com replaceValue substituindo o valor nulo Exemplos: Para substituir valor em falta com um valor derivado de outro campo: 208 Portrait Miner 7.0A Capítulo 17: Funções condicionais GastoTrim1 GastoAnual ifnull(GastoTrim1, GastoAnual/4) 45.21 178.97 45.21 null 150.56 37.64 null 784.27 196.07 59.05 274.18 59.05 Consulte também cond na página 206 isnull na página 209 isnull Objetivo: Testar se um valor é nulo. Sintaxe isnull(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O valor a ser testado Resultado Tipo Descrição inteiro 1 se x é nulo; caso contrário, 0 Exemplos Substituir entradas de valores nulos em um campo com o valor médio desse campo: Age if isnull(Age) then mean(Age) else Age 32 32 null 44 59 59 27 27 Consulte também Dividir agregações: a cláusula by na página 154 Guia de referência de comando de compilação de dados e do TML 209 isselected isselected Objetivo: Marcar os registros selecionados atualmente. Sintaxe isselected() Argumentos Nenhum Resultado Tipo Descrição inteiro 1, se o registro estiver selecionado atualmente, caso contrário, 0 Observação: O Visualizador de Dados tem um suporte especial para expansão imediata dessa função. Exemplos if isselected() then "LowRisk" else "HighRisk" replace Objetivo: Substituir um número se não estiver dentro do intervalo fornecido. Sintaxe replace(x, min, max, y) Argumentos Tipo Nome Descrição numérico x O número a ser testado como x min O limite inferior do intervalo como x max O limite superior do intervalo como x y O valor de substituição Resultado Tipo Descrição como entrada x se ; y caso contrário Exemplos Fixar valores em um intervalo entre 18 e 65 inclusive, substituindo valores fora do intervalo com o valor médio: 210 Portrait Miner 7.0A Capítulo 17: Funções condicionais CustomerAge replace (CustomerAge, 18, 65, mean(CustomerAge)) 9 38 18 18 66 38 43 43 Consulte também clamp na página 206 Guia de referência de comando de compilação de dados e do TML 211 Capítulo Funções de conversão de tipos de dados Nesta seção: • • • • todate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214 tointeger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 toreal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 tostring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216 18 todate todate Objetivo: Converte um valor para uma data. Sintaxe todate(x [, format] ) Argumentos Tipo Nome Descrição inteiro, real, data ou string x Um valor a converter string format Um formato de data [consulte Formatos de data na página 55] para uso na conversão (opcional e somente permitido se x for do tipo string) Resultado Tipo Descrição data x, como uma data Observação: • Se o argumento é do tipo integer, assume-se que ele represente a data como AAAAMMDD. • Se o argumento é do tipo real, assume-se que ele represente a data como AAAAMMDD. HHMMSS. • Se o argumento é do tipo string, e não é fornecido um argumento de formato de data, a string é convertida de acordo com a definição em sua preferência read . Exemplos (Valores de data mostrados no formato de data european.) 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. Consulte também tointeger na página 215 toreal na página 215 tostring na página 216 Conversão de tipo na página 184 214 Portrait Miner 7.0A Capítulo 18: Funções de conversão de tipos de dados tointeger Objetivo: Converte um valor para um número integer. Sintaxe tointeger(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x Um valor a converter Resultado Tipo Descrição inteiro x, como um valor inteiro Observação: • Se o argumento é do tipo real, os dígitos após o ponto decimal são ignorados. • Se o argumento é do tipo date, o resultado é no formato AAAAMMDD (o componente de hora é ignorado). • Se o argumento é do tipo string, quaisquer caracteres não numéricos à direita são ignorados. Exemplos 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. Consulte também todate na página 214 toreal na página 215 tostring na página 216 Conversão de tipo na página 184 toreal Objetivo: Converte um valor para um número real. Sintaxe toreal(x) Guia de referência de comando de compilação de dados e do TML 215 tostring Argumentos Tipo Nome Descrição inteiro, real, data ou string x Um valor a converter Resultado Tipo Descrição real x, como um número real Observação: • Se o argumento é do tipo date, o resultado é no formato AAAAMMDD.HHMMSS. • Se o argumento é do tipo string, quaisquer caracteres não numéricos à direita são ignorados. Exemplos 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. Consulte também todate na página 214 tointeger na página 215 tostring na página 216 Conversão de tipo na página 184 tostring Objetivo: Converte um valor para uma string. Sintaxe tostring(x) Argumentos Tipo Nome Descrição inteiro, real, data ou string x Um valor a converter Resultado 216 Tipo Descrição string x, como uma string Portrait Miner 7.0A Capítulo 18: Funções de conversão de tipos de dados Observação: • Se o argumento é do tipo real, o resultado é um formato decimal comum (não cientifico). • Se o argumento é do tipo data, o resultado é formatado de acordo com a definição de sua preferência date write . Exemplos 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". Consulte também todate na página 214 tointeger na página 215 toreal na página 215 Conversão de tipo na página 184 Guia de referência de comando de compilação de dados e do TML 217 Capítulo Funções para trabalhar com datas Nesta seção: • • • • • • • • • • • • • • • • • • • • • • • • • addcenturies, addcenturiescountbackwards . . . . . . . . .221 adddays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222 addhours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223 addminutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223 addmonths, addmonthscountbackwards . . . . . . . . . . . .224 addseconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226 addweeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227 addyears, addyearscountbackwards . . . . . . . . . . . . . . .228 countcenturies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 countdays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 counthours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230 countminutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231 countseconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232 countweeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233 countwholecenturies, countwholecenturiesbackwards .234 countwholedays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235 countwholehours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236 countwholeminutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236 countwholemonths, countwholemonthsbackwards . . .237 countwholeseconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239 countwholeweeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240 countwholeyears, countwholeyearsbackwards . . . . . .241 countyears . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242 day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243 dayofweek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243 19 • • • • • • • • • 220 gmt2edt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244 hour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244 minute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245 month . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246 now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246 second . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247 today . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247 weekofyear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas addcenturies, addcenturiescountbackwards Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em séculos. Sintaxe addcenturies(date, n) addcenturiescountbackwards(date, n) Argumentos Tipo Nome Descrição data date A data inicial inteiro n O número de séculos a adicionar (que pode ser negativo) Resultado Tipo Descrição data A data n séculos de calendário após a data date (interpretada como |n| séculos antes de date se n < 0). A hora do resultado é igual à parte da hora de date. Consulte addmonths, addmonthscountbackwards na página 224 para uma explicação das duas variantes. Observação: O resultado de adicionar n séculos usando a função addcenturies (respectivamente, addcenturiescountbackwards) é definido como o resultado de adicionar 1200n meses com a função addmonths (respectivamente, addmonthscountbackwards). Exemplos Para calcular uma data um século depois de d, mostrando a diferença entre as variantes addcenturies e addcenturiescountbackwards (formato de data YMD): d addcenturies(d,1) addcenturiescountbackwards(d,1) 1900/02/14 2000/02/14 2000/02/15 Consulte também countcenturies na página 229 countwholecenturies, countwholecenturiesbackwards na página 234 Formatos de data na página 55 Guia de referência de comando de compilação de dados e do TML 221 adddays adddays Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em dias. Sintaxe adddays(date, n) Argumentos Tipo Nome Descrição data date A data inicial inteiro n O número de dias a adicionar (que pode ser negativo). Resultado Tipo Descrição data A data n dias após a data date (interpretada como |n| dias antes da data date se n < 0). A hora do resultado é igual à parte da hora de date. Exemplos Formato de data european: adddays(#09/01/2004, 25) é igual a 03/02/2004. Formato de data european: adddays(#09/01/2004:11:43:46, 25) é igual a 03/02/2004:11:43:46. Formato de data american: adddays(#01/09/2004, 25) é igual a 02/03/2004. Formato de data american: adddays(#01/09/2004:11:43:46, 25) é igual a 02/03/2004:11:43:46. Formato de data YMD: adddays(#2004/01/09, 25) é igual a 2004/02/03. Formato de data YMD: adddays(#2004/01/09:11:43:46, 25) é igual a 2004/02/03:11:43:46. Consulte também countdays na página 229 countwholedays na página 235 Formatos de data na página 55 222 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas addhours Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em horas. Sintaxe addhours(date, n) Argumentos Tipo Nome Descrição data date A data inicial inteiro n O número de horas a adicionar (que pode ser negativo) Resultado Tipo Descrição data A data n horas após a data date (interpretada como |n| horas antes da date, se n < 0) Observação: Todas as datas em FDL incluem um componente de hora. Exemplos Formato de data european: addhours(#09/01/2004:12:28:53, 25) é igual a 10/01/2004:13:28:53. Formato de data american: addhours(#01/09/2004:12:28:53, 25) é igual a 01/10/2004:13:28:53. Formato de data YMD: addhours(#2004/01/09:12:28:53, 25) é igual a 2004/01/10:13:28:53. Consulte também counthours na página 230 countwholehours na página 236 Formatos de data na página 55 addminutes Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em minutos. Sintaxe addminutes(date, n) Argumentos Guia de referência de comando de compilação de dados e do TML 223 addmonths, addmonthscountbackwards Tipo Nome Descrição data date A data inicial inteiro n O número de minutos a adicionar (que pode ser negativo) Resultado Tipo Descrição data A data n minutos após a data date (interpretada como |n| minutos antes da date, se n < 0) Observação: Todas as datas em FDL incluem um componente de hora. Exemplos Formato de data european: addminutes(#09/01/2004:12:28:53, 25) é igual a 09/01/2004:12:53:53. Formato de data american: addminutes(#01/09/2004:12:28:53, 25) é igual a 01/09/2004:12:53:53. Formato de data YMD: addminutes(#2004/01/09:12:28:53, 25) é igual a 2004/01/09:12:53:53. Consulte também countminutes na página 231 countwholeminutes na página 236 Formatos de data na página 55 addmonths, addmonthscountbackwards Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em meses. Sintaxe addmonths(date, n) addmonthscountbackwards(date, n) Argumentos Tipo Nome Descrição data date A data inicial inteiro n O número de meses para adicionar (que pode ser negativo) Resultado 224 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas Tipo Descrição data A data n meses de calendário após a data date (interpretada como |n| meses antes de date se n < 0). O mês e o ano do resultado são determinados pelo deslocamento n. Em seguida, o dia do mês do resultado é configurado para ser igual ao indicado na data date (para addmonths) ou o mesmo número de dias do final do mês indicado na data date (para addmonthscountbackwards). Se o dia do mês acabasse por ser antes do início ou depois do final do mês (porque o mês do resultado é um mês menor que o mês que contém a date), o dia ficaria fixo no primeiro ou último dia do mês, conforme apropriado. A hora do resultado é igual à parte da hora de date. Observação: • Se forem adicionados n meses por meio do addmonths (ou addmonthscountbackwards), o resultado não será o mesmo que seria obtido ao adicionar um mês n vezes, uma vez que o dia do mês pode ser restringido por um mês intermédio mais curto no último caso. • Os resultados da adição de uma data com addmonths e addmonthscountbackwards podem ser diferentes se o mês da data e o mês do resultado tiverem diferentes números de dias. Exemplos Calcular a data um mês depois de d, mostrando a propagação da hora (formato de data YMD): 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 Calcular uma data um mês depois de d, mostrando a diferença entre as variantes addmonths e addmonthscountbackwards (formato de data YMD): d addmonths(d,1) addmonthscountbackwards(d,1) 2007/08/14 2007/09/14 2007/09/13 Calcular uma data um mês depois de d, mostrando o comportamento de fixação de addmonths no final de um mês (formato de data YMD): Guia de referência de comando de compilação de dados e do TML 225 addseconds d addmonths(d,1) 2007/08/31 2007/09/30 Calcular uma data um mês depois de d, mostrando o comportamento de fixação de addmonthscountbackwards no início do mês (formato de data YMD): d addmonthscountbackwards(d,1) 2007/08/02 2007/09/01 2007/08/01 2007/09/01 Calcular o aniversário de seis meses de cada aquisição do cliente, usando o campo de data StartDate da aquisição do cliente: addmonths(StartDate, 6) Consulte também countwholemonths, countwholemonthsbackwards na página 237 Formatos de data na página 55 addseconds Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em segundos. Sintaxe addseconds(date, n) Argumentos Tipo Nome Descrição data date A data inicial inteiro n O número de segundos a adicionar (que pode ser negativo) Resultado Tipo Descrição data A data n segundos após a data date (interpretada como |n| segundos antes da date, se n < 0) Observação: Todas as datas em FDL incluem um componente de hora. Exemplos Formato de data european: addseconds(#09/01/2004:12:28:53, 25)é igual a 09/01/2004:12:54:18. 226 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas Formato de data american: addseconds(#01/09/2004:12:28:53, 25) é igual a 01/09/2004:12:54:18. Formato de data YMD: addseconds(#2004/01/09:12:28:53, 25) é igual a 2004/01/09:12:54:18. Consulte também countseconds na página 232 countwholeseconds na página 239 Formatos de data na página 55 addweeks Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em semanas. Sintaxe addweeks(date, n) Argumentos Tipo Nome Descrição data date A data inicial inteiro n O número de semanas a adicionar (que pode ser negativo) Resultado Tipo Descrição data A data n semanas após a data date (interpretada como |n| semanas antes da date, se n < 0). A hora do resultado é igual à parte da hora de date. Exemplos Formato de data european: addweeks(#09/01/2004, 8) é igual a 05/03/2004. Formato de data american: addweeks(#01/09/2004, 8) é igual a 03/05/2004. Formato de data YMD: addweeks(#2004/01/09, 8) é igual a 2004/03/05. Consulte também countweeks na página 233 countwholeweeks na página 240 Formatos de data na página 55 Guia de referência de comando de compilação de dados e do TML 227 addyears, addyearscountbackwards addyears, addyearscountbackwards Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em anos. Sintaxe addyears(date, n) addyearscountbackwards(date, n) Argumentos Tipo Nome Descrição data date A data inicial inteiro n O número de anos a adicionar (que pode ser negativo) Resultado Tipo Descrição data A data n anos de calendário após a data date (interpretada como |n| anos antes da date se n < 0). A hora do resultado é igual à parte da hora de date. Consulte addmonths, addmonthscountbackwards na página 224 para uma explicação das duas variantes. Observação: O resultado de adicionar n anos usando a função addyears (respectivamente, addyearscountbackwards) é definido como o resultado de adicionar 12n meses com a função addmonths (respectivamente, addmonthscountbackwards). Exemplos Calcular uma data um ano depois de d, mostrando a diferença entre as variantes addyears e addyearscountbackwards (formato de data YMD): d addyears(d,1) addyearscountbackwards(d,1) 2007/02/14 2008/02/14 2008/02/15 Para calcular o aniversário de um ano de cada aquisição do cliente, usando o campo de data StartDate da aquisição do cliente: addyears(StartDate, 1) Consulte também 228 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas countwholeyears, countwholeyearsbackwards na página 241 countyears na página 242 Formatos de data na página 55 countcenturies Objetivo: Calcular o período entre duas datas em séculos. Sintaxe countcenturies(date1, date2) Argumentos Tipo Nome Descrição data date1 a primeira data data date2 a segunda data Resultado Tipo Descrição real O período entre date1 e date2 em séculos (um número negativo se date1 for posterior a date2) Observação: • Se o número não é um múltiplo exato de 100 anos (considerando as partes de hora das datas), o resultado inclui uma parte fracional. • O resultado da função countcenturies é definido como a função countyears, dividido por 100. Exemplos Formato de data european: countcenturies(#09/01/2004, #09/01/2054) é igual a 0,5. Formato de data american: countcenturies(#01/09/2004, #01/09/2054) é igual a 0,5. Formato de data YMD: countcenturies(#2004/01/09, #2054/01/09) é igual a 0,5. Consulte também countwholecenturies, countwholecenturiesbackwards na página 234 Formatos de data na página 55 countdays Objetivo: Calcular o período entre duas datas em dias. Guia de referência de comando de compilação de dados e do TML 229 counthours Sintaxe countdays(date1, date2) Argumentos Tipo Nome Descrição data date1 a primeira data data date2 a segunda data Resultado Tipo Descrição real O período entre date1 e date2 em dias (um número negativo se date1 for posterior a date2) Observação: Se as partes da hora das duas datas são diferentes, o resultado inclui uma parte fracional. Exemplos Formato de data european: 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 data american: 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 data YMD: 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. Consulte também adddays na página 222 countwholedays na página 235 Formatos de data na página 55 counthours Objetivo: Calcular o período entre duas datas em horas. 230 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas Sintaxe counthours(time1, time2) Argumentos Tipo Nome Descrição data time1 a primeira data/hora data time2 a segunda data/hora Resultado Tipo Descrição real O período entre time1 e time2 em horas (um número negativo se time1 for posterior a time2) Observação: Se as partes dos minutos ou dos segundos das duas datas são diferentes, o resultado inclui uma parte fracional. Exemplos Formato de data european: counthours(#09/01/2004:12:28:53, #10/01/2004:13:28:53) é igual a 25. Formato de data american: counthours(#01/09/2004:12:28:53, #01/10/2004:13:28:53) é igual a 25. Formato de data YMD: counthours(#2004/01/09:12:28:53, #2004/01/10:13:28:53) é igual a 25. Consulte também countwholehours na página 236 Formatos de data na página 55 countminutes Objetivo: Calcular o período entre duas datas em minutos. Sintaxe countminutes(time1, time2) Argumentos Tipo Nome Descrição data time1 a primeira data/hora data time2 a segunda data/hora Resultado Guia de referência de comando de compilação de dados e do TML 231 countseconds Tipo Descrição real O período entre time1 e time2 em minutos (um número negativo se time1 for posterior a time2) Observação: Se as partes dos segundos das duas datas são diferentes, o resultado inclui uma parte fracional. Exemplos Formato de data european: countminutes(#09/01/2004:12:28:53, #09/01/2004:12:53:53) é igual a 25. Formato de data american: countminutes(#01/09/2004:12:28:53, #01/09/2004:12:53:53) é igual a 25. Formato de data YMD: countminutes(#2004/01/09:12:28:53, #2004/01/09:12:53:53) é igual a 25. Consulte também countwholeminutes na página 236 Formatos de data na página 55 countseconds Objetivo Contar o número de segundos entre duas datas. Sintaxe countseconds(time1, time2) Argumentos Tipo Nome Descrição data time1 a primeira data/hora data time2 a segunda data/hora Resultado Tipo Descrição real O número de segundos decorridos entre time1 e time2 (um número negativo se time1 for posterior a time2) Observação: A única diferença entre essa função e a countwholeseconds é que o resultado da última é do tipo integer. Exemplos 232 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas Formato de data european: countseconds(#09/01/2004:12:28:53, #09/01/2004:12:29:18) é igual a 25. Formato de data american: countseconds(#01/09/2004:12:28:53, #01/09/2004:12:29:18) é igual a 25. Formato de data YMD: countseconds(#2004/01/09:12:28:53, #2004/01/09:12:29:18) é igual a 25. Consulte também Formatos de data na página 55 countweeks Objetivo: Calcular o período entre duas datas em semanas. Sintaxe countweeks(date1, date2) Argumentos Tipo Nome Descrição data date1 a primeira data data date2 a segunda data Resultado Tipo Descrição real O período entre date1 e date2 em semanas (um número negativo se date1 é posterior a date2) Observação: Se o número não é um múltiplo exato de sete dias (considerando as partes da hora das datas), o resultado inclui uma parte fracional. Exemplos Formato de data european: countweeks(#09/01/2004, #05/03/2004) é igual a 8. Formato de data american: countweeks(#01/09/2004, #03/05/2004) é igual a 8. Formato de data YMD: countweeks(#2004/01/09, #2004/03/05) é igual a 8. Consulte também countwholeweeks na página 240 Formatos de data na página 55 Guia de referência de comando de compilação de dados e do TML 233 countwholecenturies, countwholecenturiesbackwards countwholecenturies, countwholecenturiesbackwards Objetivo: Contar o número de séculos entre duas datas. Sintaxe countwholecenturies(date1, date2) countwholecenturiesbackwards(date1, date2) Argumentos Tipo Nome Descrição data date1 a primeira data data date2 a segunda data Resultado Tipo Descrição inteiro O número de séculos completos decorridos entre date1 e date2 (um número negativo se date1 for posterior a date2). Consulte countwholemonths, countwholemonthsbackwards na página 237 para uma explicação das duas variantes. Observação: • O resultado da função countwholecenturies (respectivamente, countwholecenturiesbackwards)) é definido como o resultado da função countwholemonths (respectivamente, countwholemonthsbackwards)) dividido por 1200, ignorando qualquer resto da divisão. • Os resultados de comparar duas datas com countwholecenturies e countwholecenturiesbackwards podem ser diferentes, mas somente se ambas as datas ocorrerem em fevereiro, uma data ocorrer em um ano divisível por 400 e a outra ocorrer em um ano divisível por 100 mas não divisível por 400. Exemplos Para contar o número de séculos completos entre d1 e d2, mostrando a diferença entre as variantes countwholecenturies e countwholecenturiesbackwards (formato de data YMD): 234 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.0A Capítulo 19: Funções para trabalhar com datas Consulte também addcenturies, addcenturiescountbackwards na página 221 countcenturies na página 229 Formatos de data na página 55 countwholedays Objetivo: Contar o número de dias completos entre duas datas. Sintaxe countwholedays(date1, date2) Argumentos Tipo Nome Descrição data date1 a primeira data data date2 a segunda data Resultado Tipo Descrição inteiro O número de períodos de 24 horas completos decorridos entre date1 e date2 (um número negativo se date1 for posterior a date2) Exemplos Formato de data european: 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 data american: 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 data YMD: 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. Guia de referência de comando de compilação de dados e do TML 235 countwholehours Consulte também adddays na página 222 countdays na página 229 Formatos de data na página 55 countwholehours Objetivo: Contar o número de horas completas entre duas datas. Sintaxe countwholehours(time1, time2) Argumentos Tipo Nome Descrição data time1 a primeira data/hora data time2 a segunda data/hora Resultado Tipo Descrição inteiro O número de horas completas decorridas entre time1 e time2 (um número negativo se time1 for posterior a time2) Exemplos Formato de data european: countwholehours(#09/01/2004:12:28:53, #10/01/2004:13:28:53) é igual a 24. Formato de data american: countwholehours(#01/09/2004:12:28:53, #01/10/2004:13:28:53) é igual a 24. Formato de data YMD: countwholehours(#2004/01/09:12:28:53, #2004/01/10:13:28:53) é igual a 24. Consulte também counthours na página 230 Formatos de data na página 55 countwholeminutes Objetivo: Contar o número de minutos completos entre duas datas. 236 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas Sintaxe countwholeminutes(time1, time2) Argumentos Tipo Nome Descrição data time1 a primeira data/hora data time2 a segunda data/hora Resultado Tipo Descrição inteiro O número de minutos completos decorridos entre time1 e time2 (um número negativo se time1 for posterior a time2) Exemplos Formato de data european: countwholeminutes(#09/01/2004:12:28:53, #09/01/2004:12:53:53) é igual a 24. Formato de data american: countwholeminutes(#01/09/2004:12:28:53, #01/09/2004:12:53:53) é igual a 24. Formato de data YMD: countwholeminutes(#2004/01/09:12:28:53, #2004/01/09:12:53:53) é igual a 24. Consulte também countminutes na página 231 Formatos de data na página 55 countwholemonths, countwholemonthsbackwards Objetivo: Contar o número de meses completos entre duas datas. Sintaxe countwholemonths(date1, date2) countwholemonthsbackwards(date1, date2) Argumentos Tipo Nome Descrição data date1 a primeira data data date2 a segunda data Resultado Guia de referência de comando de compilação de dados e do TML 237 countwholemonths, countwholemonthsbackwards Tipo Descrição inteiro O número de meses completos decorridos entre date1 e date2 (um número negativo se date1 for posterior a date2) Observação: • As partes da hora de date1 e de date2 são ignoradas. • O número de meses completos entre duas datas é o maior número de meses que pode ser adicionado à primeira data (truncando partes de hora e usando addmonths em caso de countwholemonths e addmonthscountbackwards em caso de countwholemonthsbackwards). Assim, se a segunda data for posterior à primeira data, o resultado não é posterior à segunda data, e se a segunda data for anterior à primeira data, o resultado não é anterior à segunda data. • Os resultados de comparar duas data com countwholemonths e countwholemonthsbackwards podem ser diferentes quando as datas ocorrem em meses com duração diferente. • Devido ao comportamento de fixação de addmonths (e addmonthscountbackwards), o valor absoluto dos resultados de comparar duas datas com countwholemonths (ou countwholemonthsbackwards) pode depender da ordem dos argumentos quando as datas ocorrem em meses com duração diferente. Exemplos Contar o número de meses completos entre d1 e d2, mostrando o truncamento de partes de hora (formato de data YMD): 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 Contar o número de meses completos entre d1 r d2, mostrando a diferença entre as variantes countwholemonths e countwholemonthsbackwards (formato de data YMD): 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 Contar o número de meses completos entre d1 e d2, mostrando o comportamento de fixação de countwholemonths no final do mês (formato de data YMD): 238 d1 d2 countwholemonths(d1,d2) countwholemonths(d2,d1) 2007/08/31 2007/09/30 1 0 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas Contar o número de meses completos entre d1 e d2, mostrando o comportamento de fixação de countwholemonths no início do mês (formato de data YMD): d1 d2 countwholemonthsbackwards(d1,d2) countwholemonthsbackwards(d2,d1) 2007/07/01 2007/06/01 -1 0 Contar o número de comunicações mensais por e-mail que cada cliente recebeu, onde as comunicações são enviadas no dia cinco de cada mês (a última comunicação tendo sido enviada no dia 5 de março de 2006) e usando o campo de data StartDate da aquisição do cliente: -countwholemonths(#2006/03/05, StartDate) Para contar o número de anúncios mensais que cada cliente recebeu, onde os anúncios são enviados sete dias antes do final de cada mês (o último anúncio tendo sido enviado no dia 24 de março de 2006) e usando o campo de data StartDate da aquisição do cliente: -countwholemonthsbackwards(#2006/03/24, StartDate) Consulte também addmonths, addmonthscountbackwards na página 224 Formatos de data na página 55 countwholeseconds Objetivo: Contar o número de segundos entre duas datas. Sintaxe countwholeseconds(time1, time2) Argumentos Tipo Nome Descrição data time1 a primeira data/hora data time2 a segunda data/hora Resultado Tipo Descrição inteiro O número de segundos decorridos entre time1 e time2 (um número negativo se time1 for posterior a time2) Observação: A única diferença entre essa função e a countseconds é que o resultado da última é do tipo real. Exemplos Guia de referência de comando de compilação de dados e do TML 239 countwholeweeks Formato de data european: countwholeseconds(#09/01/2004:12:28:53, #09/01/2004:12:29:18) é igual a 25. Formato de data american: countwholeseconds(#01/09/2004:12:28:53, #01/09/2004:12:29:18) é igual a 25. Formato de data YMD: countwholeseconds(#2004/01/09:12:28:53, #2004/01/09:12:29:18) é igual a 25. Consulte também Formatos de data na página 55 countwholeweeks Objetivo: Contar o número de semanas completas entre duas datas. Sintaxe countwholeweeks(date1, date2) Argumentos Tipo Nome Descrição data date1 a primeira data data date2 a segunda data Resultado Tipo Descrição inteiro O número de semanas completas decorridas entre date1 e date2 (um número negativo se date1 for posterior a date2) Exemplos Formato de data european: countwholeweeks(#09/01/2004, #09/03/2004) é igual a 8. Formato de data american: countwholeweeks(#01/09/2004, #03/09/2004) é igual a 8. Formato de data YMD: countwholeweeks(#2004/01/09, #2004/03/09) é igual a 8. Consulte também countweeks na página 233 Formatos de data na página 55 240 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas countwholeyears, countwholeyearsbackwards Objetivo: Contar o número de anos completos entre duas datas. Sintaxe countwholeyears(date1, date2) countwholeyearsbackwards(date1, date2) Argumentos Tipo Nome Descrição data date1 a primeira data data date2 a segunda data Resultado Tipo Descrição inteiro O número de anos completos decorridos entre date1 e date2 (um número negativo se date1 for posterior a date2). Consulte countwholemonths, countwholemonthsbackwards na página 237 para uma explicação das duas variantes. Observação: • O resultado da função countwholeyears (respectivamente, countwholeyearsbackwards) é definido como o resultado da função countwholemonths (respectivamente, countwholemonthsbackwards) dividido por 12, ignorando qualquer resto da divisão. • Os resultados da comparação de duas datas com countwholeyears e countwholeyearsbackwards podem ser diferentes, mas somente quando ambas as datas ocorrem em fevereiro e uma data ocorre em um ano bissexto e a outra não. Exemplos Para contar o número de anos completos entre d1 e d2, mostrando a diferença entre as variantes countwholeyears e countwholeyearsbackwards (formato de data YMD): 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 computar a idade de cada cliente no dia 1º de março de 2007 a partir de um campo de data de nascimento DOB (formato de data YMD): Guia de referência de comando de compilação de dados e do TML 241 countyears countwholeyears(DOB, #2007/03/01) Consulte também addyears, addyearscountbackwards na página 228 countyears na página 242 Formatos de data na página 55 countyears Objetivo: Calcular o período entre duas datas em anos. Sintaxe countyears(date1, date2) Argumentos Tipo Nome Descrição data date1 a primeira data data date2 a segunda data Resultado Tipo Descrição real O período entre date1 e date2 em anos (um número negativo se date1 for posterior a date2) Observação: • Se o mês, dia ou a hora de duas datas forem diferentes, o resultado inclui uma parte fracional, contando o ano incompleto como uma fração do número de dias (365 ou 366) no ano da última das duas datas. Exemplos Formato de data european: countyears(#09/01/2004, #09/01/1994) é igual a -10. Formato de data american: countyears(#01/09/2004, #01/09/1994) é igual a -10. Formato de data YMD: countyears(#2004/01/09, #1994/01/09) é igual a -10. Consulte também countwholeyears, countwholeyearsbackwards na página 241 Formatos de data na página 55 242 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas day Objetivo: Obter o dia do mês de uma data. Sintaxe day(date) Argumentos Tipo Nome Descrição data date Uma data Resultado Tipo Descrição inteiro A parte do dia do mês de date Exemplos Formato de data european: day(#09/01/2004) é igual a 9. Formato de data american: day(#01/09/2004) é igual a 9. Formato de data YMD: day(#2004/01/09) é igual a 9. Consulte também Formatos de data na página 55 Dividir agregações: a cláusula by na página 154 dayofweek Objetivo: Obter um número representante do dia da semana de uma data. Sintaxe dayofweek(date) Argumentos Tipo Nome Descrição data date Uma data Resultado Tipo Descrição inteiro O dia da semana de date (um número entre 0 e 6, com 0 representando o domingo) Guia de referência de comando de compilação de dados e do TML 243 gmt2edt Exemplos Formato de data european: dayofweek(#09/01/2004) é igual a 5 (ou seja, sexta-feira). Formato de data american: dayofweek(#01/09/2004) é igual a 5 (ou seja, sexta-feira). Formato de data YMD: dayofweek(#2004/01/09) é igual a 5 (ou seja, sexta-feira). Consulte também Formatos de data na página 55 Dividir agregações: a cláusula by na página 154 gmt2edt Objetivo: Converter uma data na Hora de Greenwhich (GMT) para um Horário de Verão do Leste dos EUA (EDT). Sintaxe gmt2edt(datetimeGMT) Argumentos Tipo Nome Descrição data datetimeGMT A data GMT para converter Resultado Tipo Descrição data A data EDT, calculada para o horário de verão Exemplos Inverno: GMT2EDT(#09/01/2004:12:28:53) é igual a 09/01/2004:07:28:53. Verão: GMT2EDT(#09/07/2004:12:28:53) é igual a 09/07/2004:08:28:53. hour Objetivo: Obter as horas de uma data. Sintaxe hour(time) Argumentos 244 Tipo Nome Descrição data time Uma data/hora Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas Resultado Tipo Descrição inteiro A parte das horas de time Exemplos Formato de data european: hour(#09/01/2004:12:28:53) é igual a 12. Formato de data american: hour(#01/09/2004:12:28:53) é igual a 12. Formato de data YMD: hour(#2004/01/09:12:28:53) é igual a 12. Consulte também Formatos de data na página 55 Dividir agregações: a cláusula by na página 154 minute Objetivo: Obter os minutos de uma data. Sintaxe minute(time) Argumentos Tipo Nome Descrição data time Uma data/hora Resultado Tipo Descrição inteiro Os minutos de time Exemplos Formato de data european: hour(#09/01/2004:12:28:53) é igual a 28. Formato de data american: hour(#01/09/2004:12:28:53) é igual a 28. Formato de data YMD: hour(#2004/01/09:12:28:53) é igual a 28. Consulte também Formatos de data na página 55 Dividir agregações: a cláusula by na página 154 Guia de referência de comando de compilação de dados e do TML 245 month month Objetivo: Obter o mês de uma data. Sintaxe month(date) Argumentos Tipo Nome Descrição data date Uma data Resultado Tipo Descrição inteiro A parte do mês de date Exemplos Formato de data european: month(#09/01/2004) é igual a 1. Formato de data american: month(#01/09/2004) é igual a 1. Formato de data YMD: month(#2004/01/09) é igual a 1. Consulte também Formatos de data na página 55 Dividir agregações: a cláusula by na página 154 now Objetivo: Obter a data e a hora atuais. Sintaxe now() Argumentos Nenhum Resultado Tipo Descrição data A data atual (incluindo hora), obtida a partir do relógio do sistema Exemplos Formato de data european: now() é igual a 09/01/2004:12:28:53. 246 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas Formato de data american: now() é igual a 01/09/2004:12:28:53. Formato de data YMD: now() é igual a 2004/01/09:12:28:53. Consulte também Formatos de data na página 55 today na página 247 second Objetivo: Obter os segundos de uma data. Sintaxe second(time) Argumentos Tipo Nome Descrição data time Uma data/hora Resultado Tipo Descrição inteiro A parte dos segundos de time Exemplos Formato de data european: second(#09/01/2004:12:28:53) é igual a 53. Formato de data american: second(#01/09/2004:12:28:53) é igual a 53. Formato de data YMD: second(#2004/01/09:12:28:53) é igual a 53. Consulte também Formatos de data na página 55 Dividir agregações: a cláusula by na página 154 today Objetivo: Obter a data atual. Sintaxe today() Argumentos Nenhum Resultado Guia de referência de comando de compilação de dados e do TML 247 weekofyear Tipo Descrição data A data atual obtida a partir do relógio do sistema, com a parte da hora configurada para 00:00:00 Exemplos Formato de data european: today() é igual a 09/01/2004:00:00:00. Formato de data american: today() é igual a 01/09/2004:00:00:00. Formato de data YMD: today() é igual a 2004/01/09:00:00:00. Consulte também Formatos de data na página 55 now na página 246 weekofyear Objetivo: Calcular a semana do ano de uma data, relativamente a uma data inicial específica. Sintaxe weekofyear(date, yearStart) Argumentos Tipo Nome Descrição data date A data cuja semana do ano deve ser obtida data yearStart A data inicial (por exemplo, de um ano fiscal) Resultado Tipo Descrição inteiro A semana do ano de date, relativamente a yearStart Observação: Somente são usadas as partes do mês e do dia da data inicial. Exemplos Formato de data european: weekofyear(#09/07/2004, #01/04/2004) é igual a 14. Formato de data american: weekofyear(#07/09/2004, #04/01/2004) é igual a 14. Formato de data YMD: weekofyear(#2004/07/09, #2004/04/01) é igual a 14. Consulte também 248 Portrait Miner 7.0A Capítulo 19: Funções para trabalhar com datas Formatos de data na página 55 Dividir agregações: a cláusula by na página 154 year Objetivo: Obter o ano de uma data. Sintaxe year(date) Argumentos Tipo Nome Descrição data date Uma data Resultado Tipo Descrição inteiro A parte do ano de date Exemplos Formato de data european: year(#09/01/2004) é igual a 2004. Formato de data american: year(#01/09/2004) é igual a 2004. Formato de data YMD: year(#2004/01/09) é igual a 2004. Consulte também Formatos de data na página 55 Guia de referência de comando de compilação de dados e do TML 249 Capítulo Funções para trabalhar com strings Nesta seção: • • • • • • • • • • • • • • • concat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 endswith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254 mid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256 soundex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 startswith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258 strlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 strmember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260 substr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 tolower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262 toupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263 trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263 20 concat concat Objetivo: Concatenar duas ou mais strings. Sintaxe concat( , , ...) Argumentos Tipo string Nome Descrição , , ... Strings para concatenar Resultado Tipo Descrição string O string obtido ao escrever os caracteres de , seguido pelos caracteres de , etc. Exemplos Derivar o nome completo de um cliente a partir de dois campos FirstName e Surname: FirstName Surname concat(FirstName," ",Surname) John Brown John Brown David Smith David Smith Derivar o nome completo de um cliente, usando somente sua inicial: FirstName Surname concat(substr(FirstName,0,0),". ",Surname) John Brown J. Brown David Smith D. Smith endswith Objetivo: Testar se uma string termina com outra. Sintaxe endswith(find_text, within_text) Argumentos 252 Portrait Miner 7.0A Capítulo 20: Funções para trabalhar com strings Tipo Nome Descrição string find_text A string a ser encontrada no final string within_text A string a ser testada Resultado Tipo Descrição inteiro 1 ("true") se find_text for encontrada no final de within_text; 0 ("false") caso contrário Observação: A função endswith é baseada na função match. Ela anexa o caractere $ ao find_text antes de tratar o resultado como uma expressão regular [consulte Expressões regulares na página 266]. Exemplos Derivar um campo que marca endereços de e-mail de domínios .net: EmailAddress endswith(".net", EmailAddress) [email protected] 1 [email protected] 0 Consulte também find na página 253 startswith na página 258 find Objetivo Testar se uma string está contida em outra string. Sintaxe find(find_text, within_text) Argumentos Tipo Nome Descrição string find_text A string a ser encontrada string within_text A string a ser testada Resultado Guia de referência de comando de compilação de dados e do TML 253 left Tipo Descrição inteiro 1 ("true") se find_text for encontrado em within_text; 0 ("false"), caso contrário Observação: A função find é baseada na função match e trata find_text como uma expressão regular [consulte Expressões regulares na página 266]. Exemplos Marcar endereços de e-mail que incluam o texto "portraitsoftware" em letras maiúsculas, minúsculas ou maiúsculas e minúsculas combinadas: EmailAddress find("portraitsoftware", tolower(EndereçodeE-mail)) [email protected] 1 [email protected] 0 [email protected] 1 Consulte também endswith na página 252 startswith na página 258 left Objetivo: Retornar uma substring de comprimento especificado a partir do final de uma string. Sintaxe left(text, num_chars) Argumentos Tipo Nome Descrição string text A string da qual extrair inteiro num_chars O número de caracteres Resultado Tipo Descrição string A substring formada por num_chars caracteres no início de text Observação: A função left é baseada na função substr. 254 Portrait Miner 7.0A Capítulo 20: Funções para trabalhar com strings Exemplos Usar os dois primeiros caracteres de um campo CostOfAction para identificar os clientes da Costa Oeste: StateCode member (left (StateCode, 2), "CA", "OR", WA") OR009 1 CA043 1 UT005 0 WA027 1 Consulte também mid na página 255 right na página 256 trim na página 263 mid Objetivo: Retornar uma substring de comprimento especificado a partir do meio de uma string. Sintaxe mid(text, start_num, num_chars) Argumentos Tipo Nome Descrição string text A string da qual extrair string start_num O primeiro índice string num_chars O número de caracteres Resultado Tipo Descrição string A substring formada por num_chars caracteres a partir da posição de caractere start_num (inclusive) do text, na qual as posições dos caracteres são numeradas a partir de 1 Observação: A função mid é baseada na função substr. Exemplos Guia de referência de comando de compilação de dados e do TML 255 right Derivar uma localização de cinco a sete caracteres a partir de um código de armazenamento: StoreCode mid(StoreCode, 5, 3) 0114EDI256 EDI 1863LON836 LON 9326EDI039 EDI 0387BOS041 BOS Consulte também left na página 254 right na página 256 trim na página 263 right Objetivo: Retornar uma substring de comprimento especificado a partir do final de uma string. Sintaxe right(text, num_chars) Argumentos Tipo Nome Descrição string text A string da qual extrair inteiro num_chars O número de caracteres Resultado Tipo Descrição string A substring formada por num_chars caracteres no final de text Observação: A função right é baseada na função substr. Exemplos Para retornar o componente de casa/rua de um campo de código de endereçamento postal do Reino Unido, ou seja, os últimos três caracteres: 256 PostalCode right(PostalCode, 3) NE25 0AY 0AY EH3 7RA 7RA Portrait Miner 7.0A Capítulo 20: Funções para trabalhar com strings PostalCode right(PostalCode, 3) SL4 1QX 1QX EH9 0NJ 0NJ Consulte também left na página 254 mid na página 255 trim na página 263 soundex Objetivo: Reduzir cada palavra a uma string de quatro caracteres para fins de indexação. Sintaxe soundex(text) Argumentos Tipo Nome Descrição string text O texto a reduzir Resultado Tipo Descrição string Uma codificação de indexação reduzida a quatro caracteres Exemplos Para derivar o código soundex para um sobrenome: Surname soundex(Surname) Brown B650 Smythe S530 Smith S530 Bruno B650 Observação: A função Soundex não está definida para caracteres não ascii. Guia de referência de comando de compilação de dados e do TML 257 startswith startswith Objetivo: Testar se uma string inicia com outra. Sintaxe startswith(find_text, within_text) Argumentos Tipo Nome Descrição string find_text A string a ser buscada string within_text A string a ser testada Resultado Tipo Descrição inteiro 1 se find_text for encontrado no início de within_text; 0 caso contrário Observação: A função startswith é baseada na função match. Ela inclui um caractere ^ ao find_text antes de tratar o resultado como uma expressão regular [consulte Expressões regulares na página 266]. Exemplos Para derivar o tipo de cartão de crédito usado em uma transação, como "Discover", "AmEx", "Visa" ou MasterCard", com base nos números de prefixo do cartão: case startswith ("6011", CC_Number): "Discover"; startswith ("4", CC_Number): "Visa"; startswith ("5", CC_Number): "MasterCard"; startswith ("34", CC_Number) or 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 Consulte também 258 Portrait Miner 7.0A Capítulo 20: Funções para trabalhar com strings endswith na página 252 find na página 253 strlen Objetivo: Obter o comprimento de uma string. Sintaxe strlen(string) Argumentos Tipo Nome Descrição string string A string cujo comprimento deve ser determinado Resultado Tipo Descrição inteiro O número de caracteres na string Exemplos Para derivar um campo de string com exatamente quatro caracteres, preenchendo uma string menor com zeros à esquerda: 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 o conjunto de associação. Guia de referência de comando de compilação de dados e do TML 259 substitute Sintaxe strmember(x, , , ...) Argumentos Tipo Nome Descrição string x O valor a ser testado como x , , ... Os elementos do conjunto Resultado Tipo Descrição inteiro 1 ("true") se x estiver no conjunto ("false") caso contrário ;0 Observação: • Só é possível usar os valores literais da string para a lista de elementos do conjunto. • Os espaços em branco à direita não são ignorados. • Essa função é preterida em favor da função geral member. Consulte também Dividir agregações: a cláusula by na página 154 substitute Objetivo: Substituir uma string por outra. Sintaxe substitute(text, old_text, new_text) Argumentos Tipo Nome Descrição string text A string a ser pesquisada string old_text A string a ser substituída string new_text A string de substituição Resultado Tipo Descrição string Uma cópia da string text com new_text substituindo cada instância sem sobreposição de old_text Observação: A função substitute é baseada na função replaceall e trata old_text como uma expressão regular [consulte Expressões regulares na página 266]. 260 Portrait Miner 7.0A Capítulo 20: Funções para trabalhar com strings Exemplos Para remover espaços em branco de um campo chamado PostalCode: PostalCode substitute(PostalCode, "[[:blank:]]", "") ND 069 ND069 IN 099 IN099 UT 0 0 5 UT005 O R 009 OR009 Consulte também replacefirst na página 272 substr Objetivo: Obter uma substring a partir de uma string. Sintaxe substr(string, start, end) Argumentos Tipo Nome Descrição string string A string inicial inteiro start O primeiro índice inteiro end O segundo índice Resultado Tipo Descrição string A substring formada por caracteres start até end (inclusive) da string, na qual os caracteres são numerados a partir de 0. Os valores de índice positivos contam a partir do início da string, e os valores de índice negativos contam a partir do final da string. Exemplos Para selecionar os primeiros dois e os últimos três caracteres de um campo PostalCode para oferecer o código do estado: Guia de referência de comando de compilação de dados e do TML 261 tolower PostalCode substr(PostalCode, 0, 1) substr(PostalCode, -3, -1) MA015 MA 015 WA055 WA 055 UT005 UT 005 MN119 MN 119 Para derivar o tipo de cartão de crédito usado em uma transação, como "Discover", "AmEx", "Visa" ou MasterCard", com base nos números de prefixo do cartão: 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_CC, 0, 1) = "34" or 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: Converter uma string para texto em letra minúscula. Sintaxe tolower(string) Argumentos Tipo Nome Descrição string string Uma string a ser convertida Resultado 262 Portrait Miner 7.0A Capítulo 20: Funções para trabalhar com strings Tipo Descrição string A string obtida a partir de string substituindo todas as letras maiúsculas na string pela letra minúscula correspondente Exemplos tolower("ZYXWV") é igual a "zyxwv" Consulte também toupper na página 263 toupper Objetivo: Converter uma string para texto em letra maiúscula. Sintaxe toupper(string) Argumentos Tipo Nome Descrição string string Uma string a ser convertida Resultado Tipo Descrição string A string obtida a partir da string substituindo todas as letras minúsculas na string pela letra maiúscula correspondente Exemplos toupper("abcde") é igual a "ABCDE" Consulte também tolower na página 262 trim Objetivo: Remover todos os espaços de uma string, exceto os espaços vazios entre as palavras. Sintaxe trim(text) Argumentos Guia de referência de comando de compilação de dados e do TML 263 trim Tipo Nome Descrição string text A string a ser cortada Resultado Tipo Descrição string A string formada a partir de text removendo todos os espaços, exceto os espaços vazios entre palavras Observação: A função trim é baseada na função replaceall. Exemplos Derivar um campo que substitui vários caracteres de espaços em branco por apenas um espaço: 264 CommentField trim(CommentField) Artigos defeituosos devolvidos Artigos defeituosos devolvidos Compromisso perdido Compromisso perdido Visita de engenheiro: Segunda-feira Visita de engenheiro: Segunda-feira Resolvido Resolvido Portrait Miner 7.0A Capítulo Expressões regulares e funções associadas Nesta seção: • • • • • • Expressões regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . .266 Componentes básicos de uma expressão regular . . . .266 Operadores de expressões regulares . . . . . . . . . . . . . .268 match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270 replaceall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271 replacefirst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272 21 Expressões regulares Expressões regulares Expressões regulares servem para coincidir padrões em strings [consulte Tipos de Dados na página 182]. Uma expressão regular é uma string especialmente formatada que representa um padrão de caracteres. Por exemplo, a expressão regular "ar{1,2}y\?$" representa "a letra 'a', seguida de um ou dois 'r', possivelmente seguidos de "y", seguido de o final de uma string." Esse padrão ocorre em strings como "marry"e "jar" — mas não ocorre em "may" ou "jars.") Uma expressão regular é composta por componentes básicos [consulte Componentes básicos de uma expressão regular na página 266] combinados por meio de operadores [consulte Operadores de expressões regulares na página 268]. Se uma expressão regular (que não seja uma subexpressão) coincidir com mais de uma porção de uma string, essa coincide sempre com a porção candidata mais longa e mais à esquerda. Por exemplo, a expressão regular "a[^ad]\+" (representando "a letra 'a', seguida de uma ou mais letras que não sejam 'a' ou 'd'") coincide com "adaptationally." A porção que coincide não é "ation", uma vez que existem porções candidatas mais à esquerda. Nem é "ap" porque, apesar de não existirem candidatos mais à esquerda, existe uma porção candidata mais longa que começa com o mesmo caractere. • Para testar uma string quanto a coincidência com expressão regular, use a função match. • Para substituir porções de uma string que coincidem com as de outra string, use a função replacefirst ou replaceall. Observação: • As expressões regulares são tipicamente (mas não necessariamente) literais e, nesse caso, devem ser fechadas em aspas duplas, por exemplo, "ar{1,2}y\?$". • Miner/FDL usa uma Expressão regular fornecida pela biblioteca ICU. (é possível vincular a http://userguide.icu-project.org/strings/regexp) • As expressões regulares ICU estão em conformidade com a Norma Técnica Unicode nº 18 e as Expressões Regulares Unicode, nível 1, e também incluem Limites de Palavra Padrão e Propriedades de Nome do nível 2. Componentes básicos de uma expressão regular Os componentes básicos de uma expressão regular [consulte Expressões regulares na página 266] são átomos, âncoras e referências inversas. Átomos Um átomo coincide exatamente com um conjunto especificado de caracteres: 266 Átomo Caractere coincidente . (match-any) Qualquer caractere [...] (match-list) Qualquer um dos caracteres especificados Portrait Miner 7.0A Capítulo 21: Expressões regulares e funções associadas Átomo Caractere coincidente [^...] (non-match-list) Qualquer caractere que não seja um dos caracteres especificados Um caractere que não seja ., ^, $, \, [, ], O próprio caractere ou *, ocorrendo fora da lista de coincidências ou da lista de não coincidências ., ^, $, \, [, ], ou *, ocorrendo fora da O próprio caractere lista de coincidências ou da lista de não coincidências e precedido por uma barra invertida (\) É possível que uma lista de coincidências ou uma lista de não coincidências inclua caracteres simples, intervalos de caracteres e classes de caracteres. Não é possível usar intervalos de caracteres ou classes de caracteres, exceto em uma lista de coincidências ou lista de não coincidências. Um intervalo de caracteres é um par de caracteres separado por um hífen e equivale a uma lista de todos os caracteres nesse intervalo (no conjunto de caracteres). Por exemplo, "a-e" equivale a "abcde" em uma lista de coincidências. Uma classe de caracteres é um dos seguintes tokens predefinidos (em que os colchetes são adicionais em relação aos colchetes circunscrevendo a lista de coincidências ou a lista de não coincidências): Token Coincidências [:alnum:] Um caractere alfanumérico, ou seja, um caractere alfabético ou um dígito decimal [:alpha:] Um caractere alfabético, ou seja, "A" — "Z" e "a" — "z" [:blank:] Uma tabulação ou um caractere de espaço [:cntrl:] Um caractere de controle [:digit:] Um dígito decimal, ou seja, "0" — "9" [:graph:] Um caractere imprimível, que não seja o espaço [:lower:] Uma letra minúscula [:print:] Um caractere imprimível ou espaço [:punct:] Um caractere de pontuação [:space:] Um caractere de espaço em branco [:upper:] Uma letra maiúscula [:xdigit:] Um dígito hexadecimal, ou seja, "0" — "9," "A" — "F," e "a" — "f" Observação: • É possível incluir uma combinação de caracteres simples, intervalos de caracteres e classes de caracteres em apenas uma lista de coincidências ou de não coincidências. Guia de referência de comando de compilação de dados e do TML 267 Referências inversas Por exemplo, a lista de coincidências "[a-ex[:digit:]]" coincide com as letras minúsculas "a" — "e" e "x", bem como com os dígitos decimais ("0" — "9"). • É possível colocar um hífen em uma lista de coincidências ou em uma lista de não coincidências quando ela ocorre (a) no final de um intervalo, (b) no início de uma lista de coincidências ou de uma lista de não coincidências (nesse caso, é possível também servir como o início de um intervalo), ou (c) no final de uma lista de coincidências ou de uma lista de não coincidências. Âncoras Os caracteres ^ e $ são âncoras; eles coincidem com o início e o final de uma string, respectivamente. Por exemplo, para coincidir "The" que ocorre somente no início de uma string, é possível usar a expressão regular "^The." Referências inversas Uma referência inversa é uma barra invertida seguida de apenas um dígito n (exceto 0). Coincide exatamente com os mesmos caracteres que a nª subexpressão fechada em \(...\). Por exemplo, para coincidir "yoyo," "dodo," etc. — mas não coincidir "dojo" — é possível usar a expressão regular "\(.o\)\1." Observação: • A nª subexpressão de referência inversa é sempre a subexpressão começando com a nª barra invertida/parêntesis de abertura (mesmo se as subexpressões estiverem aninhadas). • É possível a subexpressão vazia "\(\)" ser útil para expressões regulares que envolvem alternância [consulte O operador de alternância na página 270]. Por exemplo, \(fish\(\)\|profit\(\)\)-e-\(chips\2\|loss\3\) coincide "fish-and-chips" e "profit-and-loss," mas não coincide "fish-and-loss" ou "profit-and-chips." Operadores de expressões regulares Um operador atua em uma ou duas expressões regulares [consulte Expressões regulares na página 266] para criar uma nova expressão regular. Os operadores, da maior à menor precedência, são os operadores de repetição [consulte Operadores de repetição na página 269], o operador de concatenação [consulte O operador de concatenação na página 269] e o operador de alternância [consulte O operador de alternância na página 270]. Se há uma ligação de precedência, as operações são realizadas da esquerda para a direita. As subexpressões fechadas em \(...\) são sempre avaliadas em primeiro lugar. 268 Portrait Miner 7.0A Capítulo 21: Expressões regulares e funções associadas Operadores de repetição Os operadores de repetição são unários e escritos após seu único operando. Operador Descrição * (zero-ou-mais) Se uma expressão regular 'a' coincidir com uma ou mais porções adjacentes de uma string, a expressão regular a* coincidirá com a concatenação dessas porções. Coincide também com qualquer substring vazia. \+ (um-ou-mais) Se uma expressão regular 'a' coincidir com uma ou mais porções adjacentes de uma string, a expressão regular a\+ coincidirá com a concatenação dessas porções. {m,n} (0 m n) Se uma expressão regular a coincidir com, pelo menos, m e não mais do que n porções adjacentes de uma string, a expressão regular a{m,n} coincidirá com a concatenação dessas porções. Se m=0, também coincidirá com qualquer substring vazia. \? (opcional) Assim como a{0,1}, a expressão regular a\? coincide com qualquer substring vazia ou com qualquer porção de uma string com a qual a expressão regular a coincida. Observação: As "porções adjacentes" mencionadas nas definições de *, \+ e {...} não são necessariamente strings idênticas. Se for necessário coincidir repetições exatas, use as referências inversas [consulte Referências inversas na página 268]. O operador de concatenação Na verdade, o operador de concatenação não é escrito, mas está implícito sempre que duas expressões regulares são escritas uma ao lado da outra. Se as expressões regulares a e b coincidirem com as porções adjacentes x e y de uma string z (com x precedendo y), a concatenação de a e b (escrita como a seguida de b) coincide com a porção de z contendo x e y. Observação: Qualquer string com caracteres não especiais, ou seja, caracteres com nenhum significado especial em uma expressão regular, funciona como uma expressão regular que coincide com essa string devido ao operador de concatenação implícito. Na prática, a maior parte das expressões regulares é composta por strings de caracteres simples, intercalados com alguns caracteres especiais. Por exemplo, a expressão regular "[SsDd]imple" coincide com as strings "Simple", "simple", "Dimple" e "dimple". Guia de referência de comando de compilação de dados e do TML 269 O operador de alternância O operador de alternância O operador de alternância "\|" é um operador binário, escrito entre seus operandos. Se a expressão regular a ou b coincidir com uma porção de uma string, a alternância a\|b também coincide com essa porção. match Objetivo:Testar uma string para uma coincidência de expressão regular [consulte Expressões regulares na página 266]. Sintaxe match(regexp, string) Argumentos Tipo Nome Descrição string regexp A expressão regular string string A string a ser testada Resultado Tipo Descrição inteiro 1 ("true") se regexp coincidir com a string; 0 ("false") caso contrário Exemplos Para marcar clientes cujo código de endereçamento postal do domicílio e o código de endereçamento da agência bancária coincidem nos primeiros dois caracteres (usando a função substr): HomePostcode BranchPostCode 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 em um campo de nome da empresa pelos três primeiros caracteres de um campo de um primeiro nome, seguido de qualquer texto e, em seguida, dos conteúdos do campo de um sobrenome (ignorando maiúsculas): 270 Portrait Miner 7.0A Capítulo 21: Expressões regulares e funções associadas 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 Para fazer o mesmo, mas somente com algumas letras ou dígitos e apenas um espaço entre o primeiro nome e o sobrenome: 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 Consulte também replaceall na página 271 replacefirst na página 272 Dividir agregações: a cláusula by na página 154 replaceall Objetivo: Substituir todas as substrings que coincidem com uma expressão regular [consulte Expressões regulares na página 266]. Sintaxe replaceall(regexp, replacement, string) Argumentos Tipo Nome Descrição string regexp A expressão regular string replacement A string de substituição string string A string a ser pesquisada Resultado Guia de referência de comando de compilação de dados e do TML 271 replacefirst Tipo Descrição string Uma cópia da string string com replacement substituindo cada porção sem sobreposição que coincida com regexp Observação: A primeira porção de coincidência da string que vai ser pesquisada é a porção maior e que ocorre mais à esquerda que coincide com a expressão regular. A pesquisa seguinte aplica-se ao restante da string que vai ser pesquisada e assim por diante. Por exemplo, replaceall("i..", "X", "initiation") produz a string "XtXX" (em vez de, por exemplo, "inXatX"). E replaceall("i.*i", "X", "initiation") resulta em "Xon" (em vez de, por exemplo, "XtXon"). Exemplos Para detectar e remover espaços em branco de um campo PostalCode usando uma coincidência de expressão regular: PostalCode replaceall("[[:blank:]]","",PostalCode)) ND 069 ND069 IN 099 IN099 UT 0 0 5 UT005 O R 009 OR009 Consulte também match na página 270 replacefirst na página 272 replacefirst Objetivo:Substituir a primeira substring que coincidir com uma expressão regular [consulte Expressões regulares na página 266]. Sintaxe replacefirst(regexp, replacement, string) Argumentos 272 Tipo Nome Descrição string regexp A expressão regular string replacement A string de substituição Portrait Miner 7.0A Capítulo 21: Expressões regulares e funções associadas Tipo Nome Descrição string string A string a ser pesquisada Resultado Tipo Descrição string Uma cópia da string string com replacement substituindo a primeira porção que coincidir com regexp (se existir alguma) Exemplos Para extrair o nome de um cliente de um campo de endereço de e-mail no formato "[email protected]", removendo tudo de "@" em diante e substituindo o "." por um espaço: E-mail replacefirst("@.*", "", (replacefirst ("\.", " ", E-mail))) [email protected] John Brown [email protected] Angela Smith Consulte também match na página 270 replaceall na página 271 Guia de referência de comando de compilação de dados e do TML 273 Capítulo Funções matemáticas e estatísticas Nesta seção: • • • • • • • • • • • • • • • • • • • • abs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276 ceil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276 cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277 exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277 floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278 log10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279 logbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279 max (dois ou mais argumentos), maxnonnull . . . . . . . .280 mean (dois ou mais argumentos), meannonnull . . . . . .281 min (dois ou mais argumentos), minnonnull . . . . . . . . .281 normalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282 pow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283 product, productnonnull . . . . . . . . . . . . . . . . . . . . . . . . .283 round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284 sgn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285 sin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285 sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286 sum (dois ou mais argumentos), sumnonnull . . . . . . . .286 tan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287 22 abs abs Objetivo: Calcular o valor absoluto de um número. Sintaxe abs(x) Argumentos Tipo Nome Descrição numérico x Um número com sinal Resultado Tipo Descrição como entrada , o valor absoluto, ou magnitude, de x Exemplos abs(-10000) é igual a 10000. abs(-25000) é igual a 25000. Para calcular o erro absoluto entre um valor previsto e um valor histórico: abs(Value PredictedValue) Consulte também sgn na página 285 ceil Objetivo: Arredondar um número para cima, para o número inteiro mais próximo. Sintaxe ceil(x) Argumentos Tipo Nome Descrição numérico x O número a ser arredondado Resultado Tipo inteiro Descrição , o valor inteiro para que Exemplos 276 Portrait Miner 7.0A Capítulo 22: Funções matemáticas e estatísticas ceil(-1,25) é igual a -2. ceil(-1,25) é igual a -1. Para gerar um número inteiro aleatório entre 1 e 10, inclusive: ceil(rndUniform()*10) Consulte também floor na página 278 round na página 284 cos Objetivo: Calcular o cosseno de um ângulo. Sintaxe cos(x) Argumentos Tipo Nome Descrição numérico x Um ângulo em radianos Resultado Tipo Descrição real cos x, o cosseno de x Exemplos cos(0) é igual a 1. exp Objetivo: Calcular o exponencial de um número. Sintaxe exp(x) Argumentos Tipo Nome Descrição numérico x O número cujo exponencial deve ser computado Resultado Guia de referência de comando de compilação de dados e do TML 277 floor Tipo Descrição real , o exponencial de x Exemplos exp(0) é igual a 1. floor Objetivo: Arredondar um número para baixo, para o número inteiro mais próximo. Sintaxe floor(x) Argumentos Tipo Nome Descrição numérico x O número a ser arredondado Resultado Tipo Descrição inteiro , o valor inteiro para que Exemplos floor(-1,25) é igual a -1. floor(-1,25) é igual a -2. Para gerar um número inteiro aleatório entre 0 e 9, inclusive: floor(rndUniform()*10) Consulte também ceil na página 276 round na página 284 log Objetivo: Calcular o logaritmo natural (base "e") de um número. Sintaxe log(x) Argumentos 278 Tipo Nome Descrição numérico x Um número positivo Portrait Miner 7.0A Capítulo 22: Funções matemáticas e estatísticas Resultado Tipo Descrição real , o logaritmo natural de x Exemplos log(1) é igual a 0. log10 Objetivo: Calcular o logaritmo de base 10 de um número. Sintaxe log10(x) Argumentos Tipo Nome Descrição numérico x Um número positivo Resultado Tipo Descrição real , o logaritmo de base 10 de x Exemplos log10(100) é igual a 2. logbase Objetivo: Calcular o logaritmo de um número, para uma base especificada. Sintaxe logbase(x, base) Argumentos Tipo Nome Descrição numérico x O número positivo cujo logaritmo deve ser computado numérico base A base a ser usada Resultado Guia de referência de comando de compilação de dados e do TML 279 max (dois ou mais argumentos), maxnonnull Tipo Descrição real , o logaritmo de base base de x Exemplos logbase(100,10) é igual a 2. max (dois ou mais argumentos), maxnonnull Objetivo: Calcular o máximo de dois ou mais números, ou a mais recente de duas ou mais datas ou a mais recente de duas ou mais strings alfabeticamente. A variante max devolve o valor nulo se algum de seus argumentos for nulo; a variante maxnonnull ignora argumentos nulos (mas devolve o valor nulo se todos os argumentos forem nulos). Sintaxe max( , , ...) maxnonnull( , , ...) Argumentos Tipo inteiro, real, data ou string (todos do mesmo tipo) Nome Descrição , , ... Os valores a serem comparados Resultado Tipo Descrição como entrada O máximo de , , ... Observação: • Atenção para não confundir essa função max multiargumento com a função de agregação [consulte max (um argumento) na página 169] de mesmo nome. • Para as strings, "mais recente alfabeticamente" significa "último na representação de caracteres subjacentes." Exemplos max(5,5, -3, 7, -8,5) é igual a 7. max(5,5, -3, null, -8,5) é igual a null. maxnonnull(5,5, -3, 7, -8,5) é igual a 7. maxnonnull(5,5, -3, null, -8,5) é igual a 5,5. Para determinar a próxima melhor ação para um cliente, de acordo com diferentes medições de ROI: maxvalue := max (ROI1, ROI2, ROI3); case maxvalue = ROI1: "Produto1"; 280 Portrait Miner 7.0A Capítulo 22: Funções matemáticas e estatísticas maxvalue = ROI2: "Produto2"; maxvalue = ROI3: "Produto3"; mean (dois ou mais argumentos), meannonnull Objetivo: Calcular a média (média comum) de dois ou mais números. A variante mean devolve o valor nulo se algum de seus argumentos for nulo; a variante meannonnull ignora os argumentos nulos (mas devolve o valor nulo se todos os argumentos forem nulos). Sintaxe mean( , , ...) meannonnull( , , ...) Argumentos Tipo numérico Nome Descrição , , ... Os números para calcular a média Resultado Tipo Descrição real A média de , , ... Observação: Atenção para não confundir essa função mean multiargumento com a função de agregação [consulte mean (um argumento) na página 170] de mesmo nome. Exemplos mean(5,5, -3, 7, -8,5) é igual a 0,25. mean(5,5, -3, null, -8,5) é igual a null. meannonnull(5,5, -3, 7, -8,5) é igual a 0,25. meannonnull(5,5, -3, null, -8,5) é igual a 2. Para calcular o gasto médio anual de quatro campos de gastos separados do trimestre: mean(SpendQtr1, SpendQtr2, SpendQtr3, SpendQtr4) min (dois ou mais argumentos), minnonnull Objetivo: Calcular o mínimo entre dois ou mais números, ou a mais recente de duas ou mais datas ou a última de duas ou mais strings alfabeticamente. A variante min devolve o valor nulo se algum de seus Guia de referência de comando de compilação de dados e do TML 281 normalize argumentos for nulo; a variante minnonnull ignora os argumentos nulos (mas devolve o valor nulo se todos os argumentos forem nulos). Sintaxe min( , , ...) minnonnull( , , ...) Argumentos Tipo inteiro, real, data ou string (todos do mesmo tipo) Nome Descrição , , ... Os valores a serem comparados Resultado Tipo Descrição como entrada O mínimo , , ... Observação: • Atenção para não confundir essa função min multiargumento com a função de agregação [consulte min (um argumento) na página 171] de mesmo nome. • Para as strings, "mais recente alfabeticamente" significa "as mais recentes na representação de caracteres subjacentes." Exemplos min(5,5, -3, 7, -8,5) é igual a -8,5. min(5,5, -3, null, -8,5) é igual a null. minnonnull(5,5, -3, 7, -8,5) é igual a -8,5. minnonnull(5,5, -3, null, -8,5) é igual a -8,5. normalize Objetivo: Normalizar valores de campo para ficarem no intervalo [0,1]. Sintaxe normalize(x) Argumentos Tipo Nome Descrição numérico x O número a ser normalizado Resultado 282 Portrait Miner 7.0A Capítulo 22: Funções matemáticas e estatísticas Tipo Descrição real Valor entre 0 e 1 dado por Observação: Só é possível usar essa função em uma derivação do Decision Studio, no arquivo de derivações para qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreamento para o qstrack ou em um arquivo de seleções para o qsselect. pow Objetivo: Calcular o resultado de elevar um número à potência de outro. Sintaxe pow(x, exponent) Argumentos Tipo Nome Descrição numérico x O número a ser elevado a uma potência numérico exponent O exponente Resultado Tipo real Descrição , x elevado à potência exponent Exemplos pow(10, 2) é igual a 100. product, productnonnull Objetivo: Calcular o produto de dois ou mais números. A variante do product retorna o valor nulo se algum de seus argumentos é nulo; a variante productnonnull ignora os argumentos nulos (mas ainda assim retorna o valor nulo se todos os seus argumentos são nulos). Sintaxe product( , , ...) productnonnull( , , ...)> Argumentos Guia de referência de comando de compilação de dados e do TML 283 round Tipo numérico Nome Descrição , , ... Os números a serem multiplicados Resultado Tipo Descrição como entrada O produto de , , ... Exemplos productnonnull(5,5, -3, 7, -8,5) é igual a 981,75. product(5,5, -3, null, -8,5) é igual a nulo. productnonnull(5,5, -3, 7, -8,5) é igual a 981,75. productnonnull(5,5, -3, null, -8,5) é igual a 140,25. round Objetivo: Arredondar um número para o número inteiro mais próximo. Sintaxe round(x) Argumentos Tipo Nome Descrição numérico x O número a ser arredondado Resultado Tipo Descrição inteiro o inteiro mais próximo de x, ou, no caso de o valor se encontrar exatamente no meio, o maior de dois inteiros mais próximos (em valor absoluto) Exemplos round(-1,25) é igual a -1. round(-1,25) é igual a -1. round(1,5) é igual a 2. round(-1,5) é igual a -2. Consulte também 284 Portrait Miner 7.0A Capítulo 22: Funções matemáticas e estatísticas ceil na página 276 floor na página 278 sgn Objetivo: Calcular o signo (sinal) de um número. Sintaxe sgn(x) Argumentos Tipo Nome Descrição numérico x Um número com sinal Resultado Tipo Descrição como entrada Um número representando o sinal de x: Exemplos sgn(-25) é igual a -1. sgn(-25) é igual a -1. Consulte também abs na página 276 Dividir agregações: a cláusula by na página 154 sin Objetivo: Calcular o seno de um ângulo. Sintaxe sin(x) Argumentos Tipo Nome Descrição numérico x Um ângulo em radianos Resultado Guia de referência de comando de compilação de dados e do TML 285 sqrt Tipo Descrição real sin x, o seno de x Exemplos sin(3,14159/2) é igual a 1. sqrt Objetivo: Calcular a raiz quadrada de um número. Sintaxe sqrt(x) Argumentos Tipo Nome Descrição numérico x Um número não negativo Resultado Tipo Descrição real , a raiz quadrada de x Exemplos sqrt(25) é igual a 5. sqrt(-25) é igual a nulo. sum (dois ou mais argumentos), sumnonnull Objetivo: Calcular a soma de dois ou mais números. A variante de sum devolve o valor nulo se algum de seus argumentos for nulo; a variante de sumnonnull ignora os argumentos nulos (mas devolve o valor nulo se todos os argumentos forem nulos). Sintaxe sum( , , ...) sumnonnull( , , ...) Argumentos Tipo numérico Nome , , ... Descrição Os números a serem somados Resultado 286 Portrait Miner 7.0A Capítulo 22: Funções matemáticas e estatísticas Tipo Descrição como entrada A soma de , , ... Observação: Atenção para não confundir essa função sum multiargumento com a função de agregação [consulte sum (um argumento) na página 177] de mesmo nome. Exemplos sum(5,5, -3, 7, -8,5) é igual a 1. sum(5,5, -3, null, -8,5) é igual a null. sumnonnull(5,5, -3, 7, -8,5) é igual a 1. sumnonnull(5,5, -3, null, -8,5) é igual a -6. Para derivar o gasto total de seis campos de gastos semanais: sum(SpendWk1, SpendWk2, SpendWk3, SpendWk4, SpendWk5, SpendWk6) tan Objetivo: Calcular a tangente de um ângulo. Sintaxe tan(x) Argumentos Tipo Nome Descrição numérico x Um ângulo em radianos Resultado Tipo Descrição real tan x, a tangente de x Observação: Se x for da forma FDL retorna nulo. para algum inteiro n, tan x é indefinido. Nesse caso, a função Exemplos tan(3,14159/4) é igual a 1. Guia de referência de comando de compilação de dados e do TML 287 Capítulo Funções de amostragem de dados Nesta seção: • • • • • • • • numericTestTrainSplit . . . . . . . . . . . . . . . . . . . . . . . . . . .290 numericTestTrainValidateSplit . . . . . . . . . . . . . . . . . . . . .290 sampleEqualSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291 sampleExactNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . .292 sampleExactPercentage . . . . . . . . . . . . . . . . . . . . . . . . . .292 sampleStratified . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293 testTrainSplit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294 testTrainValidateSplit . . . . . . . . . . . . . . . . . . . . . . . . . . . .295 23 numericTestTrainSplit numericTestTrainSplit Objetivo: Criar uma segmentação de teste/treinamento para uso na validação de modelo. Sintaxe numericTestTrainSplit(testFraction) Argumentos Tipo Nome Descrição real testFraction A fração de dados que serão usados como conjunto de teste. Resultado Tipo Descrição inteiro Valores 0 para o conjunto de treinamento ou 1 para o conjunto de teste Exemplos Para derivar um campo que aloca o valor 0 para aproximadamente 70% dos registros (selecionados aleatoriamente) e o valor 1 para os demais: numericTestTrainSplit(0,3) Consulte também numericTestTrainValidateSplit na página 290 sampleEqualSize na página 291 testTrainSplit na página 294 testTrainValidateSplit na página 295 numericTestTrainValidateSplit Objetivo: Criar uma segmentação de teste/treinamento/validação para uso na validação de modelo. Sintaxe numericTestTrainValidateSplit(testFraction, validateFraction) Argumentos 290 Tipo Nome Descrição real testFraction A fração de dados que serão usados como conjunto de teste. real validateFraction A fração de dados que será usada como conjunto retido. Portrait Miner 7.0A Capítulo 23: Funções de amostragem de dados Resultado Tipo Descrição inteiro Valores 0 para o conjunto de treinamento, 1 para o conjunto de teste ou 2 para o conjunto de validação Exemplos Para derivar um campo que aloca o valor 0 para aproximadamente 50% dos registros (selecionados aleatoriamente), o valor 1 para aproximadamente 30% dos registros (novamente selecionados aleatoriamente) e o valor 2 para os demais: numericTestTrainValidateSplit(0,3; 0,2) Consulte também numericTestTrainSplit na página 290 sampleEqualSize na página 291 testTrainSplit na página 294 testTrainValidateSplit na página 295 sampleEqualSize Objetivo: Criar um índice de segmentação que atribui aleatoriamente os registros para segmentos aproximadamente de mesmo tamanho. Sintaxe sampleEqualSize(NumberOfSegments) Argumentos Tipo Nome Descrição inteiro NumberOfSegments O número de segmentos que serão criados Resultado Tipo Descrição inteiro Um número entre 1 e NumberOfSegments (inclusive) Exemplos Para derivar um campo enumerando cinco populações (aproximadamente) de mesmo tamanho: sampleEqualSize(5) Consulte também numericTestTrainSplit na página 290 Guia de referência de comando de compilação de dados e do TML 291 sampleExactNumber numericTestTrainValidateSplit na página 290 testTrainSplit na página 294 testTrainValidateSplit na página 295 sampleExactNumber Objetivo: Criar uma amostra aleatória de um tamanho exato, especificado como um número de registros. Sintaxe sampleExactNumber(NumberToSelect) Argumentos Tipo Nome Descrição inteiro NumberToSelect O tamanho da amostra a ser criada, como um número de registros Resultado Tipo Descrição inteiro 1 se um registro for selecionado para a amostra; 0 caso contrário Observação: • Os registros que atualmente não estão selecionados no focus são assinalados como valor nulo. • É possível usar essa função somente em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Derivar Campos equivalente, no arquivo de rastreamento para o qstrack, ou em um arquivo de seleções para o qsselect. Exemplos Para selecionar 1.250 registros para uma amostra: sampleExactNumber(1250) Consulte também sampleExactPercentage na página 292 sampleStratified na página 293 sampleExactPercentage Objetivo: Criar uma amostra aleatória de tamanho exato, especificado como uma porcentagem do tamanho da população atualmente selecionada. 292 Portrait Miner 7.0A Capítulo 23: Funções de amostragem de dados Sintaxe sampleExactPercentage(PercentageToSelect) Argumentos Tipo Nome Descrição inteiro PercentageToSelect O tamanho da amostra a ser criada, como uma porcentagem do tamanho da população atual Resultado Tipo Descrição inteiro 1 se um registro for selecionado para a amostra; 0 caso contrário Observação: • Os registros que atualmente não estão selecionados no focus são assinalados como valor nulo. • Se a PercentageToSelect multiplicada pelo tamanho da população não for um número inteiro, o número selecionado será o número inteiro mais próximo para cima ou para baixo da PercentageToSelect, multiplicado pelo tamanho da população, e fornecerá, em média, a porcentagem especificada. • É possível usar essa função somente em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Derivar Campos equivalente, no arquivo de rastreamento para o qstrack, ou em um arquivo de seleções para o qsselect. Exemplos Para selecionar 25% da população para uma amostra: sampleExactPercentage(25) Consulte também sampleExactNumber na página 292 sampleStratified na página 293 sampleStratified Objetivo: Criar uma amostra aleatória que contenha um número exato de registros de um segmento especificado, juntamente com um número exato de registros da população atualmente selecionada restante. Sintaxe sampleStratified(NumberFromSegmentToSelect, SegmentTotalSize, NumberOutsideSegmentToSelect, OutsideSegmentTotalSize, InSegmentExpression) Argumentos Guia de referência de comando de compilação de dados e do TML 293 testTrainSplit Tipo Nome Descrição inteiro NumberFromSegmentToSelect O número de registros na amostra a ser selecionada do segmento especificado inteiro SegmentTotalSize inteiro NumberOutsideSegmentToSelect O número de registros na amostra a selecionar da restante população inteiro OutsideSegmentTotalSize O número total de registros no restante da população inteiro InSegmentExpression A expressão (booleana) que determina se um registro se encontra ou não no segmento especificado O número total de registros no segmento especificado Resultado Tipo Descrição inteiro 1 se um registro for selecionado para a amostra; 0 caso contrário Observação: • Os registros que atualmente não estão selecionados no focus são assinalados como valor nulo. • É possível usar essa função somente em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Derivar Campos equivalente, no arquivo de rastreamento para o qstrack, ou em um arquivo de seleções para o qsselect. Exemplos Para criar uma amostra contendo 2.500 registros de um total de 25.000 do sexo feminino e 5.000 registros de um total de 75.000 que não são do sexo feminino: sampleStratified(2500, 25000, 5000, 75000, Gender = "F") Consulte também sampleExactNumber na página 292 sampleExactPercentage na página 292 testTrainSplit Objetivo: Criar uma segmentação de teste/treinamento para uso na validação de modelo. Sintaxe testTrainSplit(testFraction) 294 Portrait Miner 7.0A Capítulo 23: Funções de amostragem de dados Argumentos Tipo Nome Descrição real testFraction A fração de dados que serão usados como conjunto de teste. Resultado Tipo Descrição string Valores da string TestSet ou TrainingSet Exemplos Para derivar um campo que aloca o valor "TrainingSet" para aproximadamente 70% dos registros (selecionados aleatoriamente) e o valor "TestSet" para os demais: testTrainSplit(0,3) Consulte também numericTestTrainSplit na página 290 numericTestTrainValidateSplit na página 290 sampleEqualSize na página 291 testTrainValidateSplit na página 295 testTrainValidateSplit Objetivo: Criar uma segmentação de teste/treinamento/validação para uso na validação de modelo. Sintaxe testTrainValidateSplit(testFraction, validateFraction) Argumentos Tipo Nome Descrição real testFraction A fração de dados que serão usados como conjunto de teste. real validateFraction A fração de dados que será usada como conjunto retido. Resultado Tipo Descrição string Valores da string TestSet, TrainingSet ou ValidationSet Guia de referência de comando de compilação de dados e do TML 295 testTrainValidateSplit Exemplos Para derivar um campo que aloca o valor "TrainingSet" para aproximadamente 50% dos registros (selecionados aleatoriamente), o valor "TestSet" para aproximadamente 30% (novamente, selecionados aleatoriamente) e o valor "ValidationSet" para os demais: testTrainValidateSplit(0,3; 0,2) Consulte também numericTestTrainSplit na página 290 numericTestTrainValidateSplit na página 290 sampleEqualSize na página 291 testTrainSplit na página 294 296 Portrait Miner 7.0A Capítulo Funções de número aleatório Nesta seção: • • • • • • • • Sobre funções de números aleatórios em FDL . . . . . . .298 rndBinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298 rndBool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299 rndExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299 rndGamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 rndNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 rndPoisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301 rndUniform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302 24 Sobre funções de números aleatórios em FDL Sobre funções de números aleatórios em FDL Ao avaliar uma expressão FDL que envolva uma função de número aleatório (numericTestTrainSplit, numericTestTrainValidateSplit, rndBinomial, rndBool, rndExp, rndGamma, rndNormal, rndPoisson, ou rndUniform sampleEqualSize, sampleExactNumber, sampleExactPercentage, sampleStratified, testTrainSplit, e testTrainValidateSplit), o Portrait Miner exige uma "semente" integer para inicializar sua sequência de números aleatórios. Com a mesma semente, a mesma expressão sempre produzirá a mesma sequência de resultados. Observação: • A semente é armazenada como parte do campo informação. • A geração de números (pseudo) aleatórios é baseada na geração de Marsaglia, Zaman e Tsang (1990). rndBinomial Objetivo: Gerar um número inteiro aleatório baseado em uma distribuição binomial. Sintaxe rndBinomial(N, p) Argumentos Tipo Nome Descrição inteiro N O número (positivo) de avaliações numérico p A probabilidade de sucesso para cada avaliação (entre 0 e 1) Resultado Tipo Descrição inteiro Um inteiro não negativo aleatório, amostrado da distribuição binomial, com probabilidade dada por Observação: A expectativa e a variação da distribuição binomial são e respectivamente. Exemplos rndBinomial (50; 0,05) Consulte também Sobre funções de números aleatórios em FDL na página 298 298 Portrait Miner 7.0A Capítulo 24: Funções de número aleatório rndBool Objetivo: Gerar 0 ou 1 aleatoriamente (com probabilidades iguais). Sintaxe rndBool() Argumentos Nenhum Resultado Tipo Descrição inteiro 0 ou 1, com probabilidades Exemplos Derivar um campo que aloca o valor 0 para aproximadamente 50% dos registros (selecionados aleatoriamente) e o valor 1 para os demais: rndBool() Consulte também Sobre funções de números aleatórios em FDL na página 298 rndExp Objetivo: Gerar um número positivo aleatório baseado em uma distribuição exponencial. Sintaxe rndExp(b) Argumentos Tipo Nome Descrição numérico b O parâmetro de escala (positivo) Resultado Tipo Descrição real Um número aleatório positivo, amostrado da distribuição exponencial, com função de densidade de probabilidade dada por (x > 0) Observação: A expectativa e a variação da distribuição exponencial são e respetivamente. Exemplos rndExp(10) Consulte também Sobre funções de números aleatórios em FDL na página 298 Guia de referência de comando de compilação de dados e do TML 299 rndGamma rndGamma Objetivo: Gerar um número positivo aleatório baseado em uma distribuição gama. Sintaxe rndGamma(a, b) Argumentos Tipo Nome Descrição inteiro a O número (positivo) de eventos independentes numérico b A taxa (positiva) de eventos Resultado Tipo Descrição real Um número aleatório positivo, amostrado da distribuição gama , com função de densidade de probabilidade dada por Observação: A expectativa e a variação da distribuição gama são e respetivamente. Exemplos rndGamma (50; 0,05) Consulte também Sobre funções de números aleatórios em FDL na página 298 rndNormal Objetivo: Gerar um número aleatório baseado em uma distribuição normal. Sintaxe rndNormal( , ) Argumentos Tipo Nome Descrição numérico A média da distribuição numérico O desvio padrão da distribuição Resultado 300 Portrait Miner 7.0A Capítulo 24: Funções de número aleatório Tipo Descrição real Um número aleatório positivo, amostrado da distribuição normal , com função de densidade de probabilidade dada por Observação: A expectativa e a variação da distribuição normal são e respetivamente. Exemplos Derivar uma distribuição gaussiana, com média zero e desvio padrão da unidade: rndNormal(0,1) Consulte também Sobre funções de números aleatórios em FDL na página 298 rndPoisson Objetivo: Gerar um inteiro não negativo aleatório, baseado em uma distribuição poissoniana discreta. Sintaxe rndPoisson(mean) Argumentos Tipo Nome Descrição numérico A média (positiva) da distribuição Resultado Tipo Descrição inteiro Um inteiro não negativo aleatório, amostrado da distribuição poissoniana discreta, com probabilidade dada por ( ) Observação: A expectativa e a variação da distribuição poissoniana discreta são iguais à média, . Exemplos rndPoisson(10) Consulte também Sobre funções de números aleatórios em FDL na página 298 Guia de referência de comando de compilação de dados e do TML 301 rndUniform rndUniform Objetivo: Gerar um número aleatório entre 0 e 1, baseado em uma distribuição uniforme. Sintaxe rndUniform() Argumentos Nenhum Resultado Tipo Descrição real Um número aleatório, amostrado a partir de uma distribuição uniforme superior a [0, 1) Exemplos Para gerar um número real aleatório no intervalo [0,10): rndUniform() * 10 Consulte também Sobre funções de números aleatórios em FDL na página 298 302 Portrait Miner 7.0A Capítulo Funções de retorno de investimento Nesta seção: • • • • • • • • ActionROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304 ActionROIAnnualized . . . . . . . . . . . . . . . . . . . . . . . . . . . .305 OfferROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306 OfferROIAnnualized . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307 RetentionActionROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308 RetentionActionROIAnnualized . . . . . . . . . . . . . . . . . . . .310 RetentionOfferROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311 RetentionOfferROIAnnualized . . . . . . . . . . . . . . . . . . . . .312 25 ActionROI ActionROI Objetivo: Objtivo Estimar a contribuição ao retorno de investimento (dinheiro) por cliente por efetuar ações projetadas para gerar uma resposta definitiva. A ação ocorre, independente de o cliente responder ou não. Por isso, existe somente o custo da ação, não o de execução. Sintaxe ActionROI(ResponseProbability, ValueOfResponse, CostOfAction) Argumentos Tipo Nome Descrição numérico ResponseProbability A probabilidade estimada de que o cliente responderá à ação, exibindo algum comportamento de resposta. numérico ValueOfResponse O valor estimado da resposta do cliente à ação de marketing (se ocorrer) numérico CostOfAction O custo estimado da ação (independente de o cliente responder) Resultado Tipo Descrição numérico A contribuição ao retorno de investimento (dinheiro) estimada por cliente por efetuar as ações Observação: • A probabilidade de resposta deve ser uma "elevação", ou seja, a probabilidade de os clientes terem aquele comportamento quando eles, pelo contrário, não o teriam. Se houver qualquer possibilidade de o cliente ter o comportamento desejado sem que a ação seja efetuada, isso deve ser modelado usando um modelo de elevação ou, se isso não funcionar, subtraindo a probabilidade de resposta devido à probabilidade do comportamento sem a ação. • O valor de resposta deve ser a receita líquida ignorando o custo da ação de marketing. Consulte também ActionROIAnnualized na página 305 OfferROI na página 306 OfferROIAnnualized na página 307 RetentionActionROI na página 308 RetentionActionROIAnnualized na página 310 304 Portrait Miner 7.0A Capítulo 25: Funções de retorno de investimento RetentionOfferROI na página 311 RetentionOfferROIAnnualized na página 312 ActionROIAnnualized Objetivo: Estimar o múltiplo para o retorno de investimento anual por cliente por efetuar ações projetadas para gerar uma resposta definitiva de um cliente. A ação ocorre, independente de o cliente responder ou não. Por isso, existe somente o custo da ação, não o de execução. Sintaxe ActionROIAnnualized(ResponseProbability, ValueOfResponse, CostOfAction, DaysToROI) Argumentos Tipo Nome Descrição numérico ResponseProbability A probabilidade estimada de que o cliente responderá à ação, exibindo algum comportamento de resposta. numérico ValueOfResponse O valor estimado da resposta do cliente à ação de marketing (se ocorrer) numérico CostOfAction O custo estimado da ação (independente de o cliente responder) numérico DaysToROI O número de dias que se espera ser necessário para alcançar o retorno de investimento fornecido Resultado Tipo Descrição numérico O múltiplo do retorno de investimento anual estimado por cliente por efetuar as ações Observação: • A probabilidade de resposta deve ser uma "elevação", ou seja, a probabilidade de os clientes terem aquele comportamento quando eles, pelo contrário, não o teriam. Se houver qualquer possibilidade de o cliente ter o comportamento desejado sem que a ação seja efetuada, isso deve ser modelado usando um modelo de elevação ou, se isso não funcionar, subtraindo a probabilidade de resposta devido à probabilidade do comportamento sem a ação. • O valor de resposta deve ser a receita líquida ignorando o custo da ação de marketing. Guia de referência de comando de compilação de dados e do TML 305 OfferROI Consulte também ActionROI na página 304 OfferROI na página 306 OfferROIAnnualized na página 307 RetentionActionROI na página 308 RetentionActionROIAnnualized na página 310 RetentionOfferROI na página 311 RetentionOfferROIAnnualized na página 312 OfferROI Objetivo: Estimar a contribuição para o retorno de investimento por cliente por efetuar uma oferta projetada para gerar uma resposta definitiva. Sintaxe OfferROI(ResponseProbability, ValueOfResponse, CostOfOffer, CostOfFulfilment) Argumentos Tipo Nome Descrição numérico ResponseProbability A probabilidade estimada de que o cliente responderá à ação, exibindo algum comportamento de resposta. numérico ValueOfResponse O valor estimado da resposta do cliente à ação de marketing (se ocorrer) numérico CostOfOffer O custo estimado da ação (independente de o cliente responder) numérico CostOfFulfilment O custo estimado de uma concretização de uma resposta positiva (zero, se não existirem custos (adicionais) de execução) Resultado 306 Tipo Descrição numérico O retorno de investimento estimado por cliente por fazer uma proposta Portrait Miner 7.0A Capítulo 25: Funções de retorno de investimento Observação: • A probabilidade de resposta deve ser uma "elevação", ou seja, a probabilidade de os clientes terem aquele comportamento quando eles, pelo contrário, não o teriam. Se houver qualquer possibilidade de o cliente ter o comportamento desejado sem que a ação seja efetuada, isso deve ser modelado usando um modelo de elevação ou, se isso não funcionar, subtraindo a probabilidade de resposta devido à probabilidade do comportamento sem a ação. • O valor de resposta deve ser uma receita líquida, ignorando o custo da ação de marketing e o custo de execução da resposta do cliente. Consulte também ActionROI na página 304 ActionROIAnnualized na página 305 OfferROIAnnualized na página 307 RetentionActionROI na página 308 RetentionActionROIAnnualized na página 310 RetentionOfferROI na página 311 RetentionOfferROIAnnualized na página 312 OfferROIAnnualized Objetivo: Estimar o múltiplo para o retorno de investimento anual por efetuar uma oferta projetada para gerar uma resposta definitiva de um cliente. Sintaxe OfferROIAnnualized(ResponseProbability, ValueOfResponse, CostOfOffer, CostOfFulfilment, DaysToROI) Argumentos Tipo Nome Descrição numérico ResponseProbability A probabilidade estimada de que o cliente responderá à ação, exibindo algum comportamento de resposta. numérico ValueOfResponse O valor estimado da resposta do cliente à ação de marketing (se ocorrer) numérico CostOfOffer O custo estimado da ação (independente de o cliente responder) numérico CostOfFulfilment O custo estimado de uma concretização de uma resposta Guia de referência de comando de compilação de dados e do TML 307 RetentionActionROI Tipo Nome Descrição positiva (zero, se não existirem custos (adicionais) de execução) numérico O número de dias que se espera ser necessário para alcançar o retorno de investimento fornecido DaysToROI Resultado Tipo Descrição numérico O múltiplo do retorno de investimento anual estimado por cliente por fazer uma oferta Observação: • A probabilidade de resposta deve ser uma "elevação", ou seja, a probabilidade de os clientes terem aquele comportamento quando eles, pelo contrário, não o teriam. Se houver qualquer possibilidade de o cliente ter o comportamento desejado sem que a ação seja efetuada, isso deve ser modelado usando um modelo de elevação ou, se isso não funcionar, subtraindo a probabilidade de resposta devido à probabilidade do comportamento sem a ação. • O valor de resposta deve ser uma receita líquida, ignorando o custo da ação de marketing e o custo de execução da resposta do cliente. Consulte também ActionROI na página 304 ActionROIAnnualized na página 305 OfferROI na página 306 RetentionActionROI na página 308 RetentionActionROIAnnualized na página 310 RetentionOfferROI na página 311 RetentionOfferROIAnnualized na página 312 RetentionActionROI Objetivo: Estimar a contribuição para o retorno de investimento (dinheiro) por cliente por efetuar ações projetadas para evitar desgastes. Presume-se que a ação apresente um custo fixo, independentemente de o cliente ser salvo ou não, e de o cliente "aceitar" ou não a oferta. Sintaxe RetentionActionROI(SaveProbability, NetRevenueAtRisk, CostOfAction) Argumentos 308 Portrait Miner 7.0A Capítulo 25: Funções de retorno de investimento Tipo Nome Descrição numérico SaveProbability A probabilidade estimada de que o cliente será "salvo" (durante o período em análise) como resultado da ação efetuada numérico NetRevenueAtRisk A receita líquida estimada que será perdida se o cliente for submetido a desgaste durante o período em análise numérico CostOfAction O custo estimado da ação (independente de o cliente responder) Resultado Tipo Descrição numérico A contribuição ao retorno de investimento (dinheiro) anual estimada por cliente por efetuar ações projetadas para evitar desgastes Observação: • Dizer que um cliente está "salvo" significa que "foi influenciado a não sair quando o cliente, pelo contrário, o teria feito". Esse valor é o negativo da elevação na taxa de desgaste produzido por um modelo de elevação. Se preferir, pode ser calculado como P (desgaste|nenhuma ação) - P (desgaste|ação). • A receita líquida em risco deve ser uma receita líquida que ignore o custo da ação projetada para evitar desgastes. Consulte também ActionROI na página 304 ActionROIAnnualized na página 305 OfferROI na página 306 OfferROIAnnualized na página 307 RetentionActionROIAnnualized na página 310 RetentionOfferROI na página 311 RetentionOfferROIAnnualized na página 312 Guia de referência de comando de compilação de dados e do TML 309 RetentionActionROIAnnualized RetentionActionROIAnnualized Objetivo: Estimar a contribuição para o retorno de investimento anual por cliente por efetuar ações projetadas para evitar desgastes. Presume-se que a ação apresente um custo fixo, independentemente de o cliente ser salvo ou não, e de o cliente "aceitar" ou não a oferta. Sintaxe RetentionActionROIAnnualized(SaveProbability, NetRevenueAtRisk, CostOfAction, DaysToROI) Argumentos Tipo Nome Descrição numérico SaveProbability A probabilidade estimada de que o cliente será "salvo" (durante o período em análise) como resultado da ação efetuada numérico NetRevenueAtRisk A receita líquida estimada que será perdida se o cliente for submetido a desgaste durante o período em análise numérico CostOfAction O custo estimado da ação (independente de o cliente responder) numérico DaysToROI O número de dias que se espera ser necessário para alcançar o retorno de investimento fornecido Resultado Tipo Descrição numérico A contribuição ao retorno de investimento anual estimada por cliente por efetuar ações projetadas para evitar desgastes Observação: • Dizer que um cliente está "salvo" significa que "foi influenciado a não sair quando o cliente, pelo contrário, o teria feito". Esse valor é o negativo da elevação na taxa de desgaste produzido por um modelo de elevação. Se preferir, pode ser calculado como P (desgaste|nenhuma ação) - P (desgaste|ação). • A receita líquida em risco deve ser uma receita líquida que ignore o custo da ação projetada para evitar desgastes. Consulte também ActionROI na página 304 310 Portrait Miner 7.0A Capítulo 25: Funções de retorno de investimento ActionROIAnnualized na página 305 OfferROI na página 306 OfferROIAnnualized na página 307 RetentionActionROI na página 308 RetentionOfferROI na página 311 RetentionOfferROIAnnualized na página 312 RetentionOfferROI Objetivo: Estimar o retorno de investimento por cliente por fazer uma oferta projetada para evitar desgastes. Uma oferta, diferente de uma ação, apresenta um custo diferente dependendo da aceitação ou não por parte do cliente. Sintaxe RetentionOfferROI(SaveProbability, ResponseProbability, NetRevenueAtRisk, CostOfOffer, CostOfFulfilment) Argumentos Tipo Nome Descrição numérico SaveProbability A probabilidade estimada de que o cliente será "salvo" (durante o período em análise) como resultado da ação efetuada numérico ResponseProbability A probabilidade estimada de o cliente responder à oferta numérico NetRevenueAtRisk A receita líquida estimada que será perdida se o cliente for submetido a desgaste durante o período em análise numérico CostOfOffer O custo estimado da oferta (independente de o cliente responder) numérico CostOfFulfilment O custo estimado de concretização de uma resposta positiva à oferta Resultado Tipo Descrição numérico O retorno de investimento estimado por cliente de uma oferta projetada para evitar desgastes Guia de referência de comando de compilação de dados e do TML 311 RetentionOfferROIAnnualized Observação: • Dizer que um cliente está "salvo" significa que "foi influenciado a não sair quando o cliente, pelo contrário, o teria feito". Esse valor é deduzido da elevação na taxa de desgaste produzida por um modelo de elevação. Se preferir, pode ser calculado como P (desgaste|nenhuma ação) - P (desgaste|ação). • A receita líquida em risco deve ser uma receita líquida ignorando o custo da ação projetada para evitar desgastes. Consulte também ActionROI na página 304 ActionROIAnnualized na página 305 OfferROI na página 306 OfferROIAnnualized na página 307 RetentionActionROI na página 308 RetentionActionROIAnnualized na página 310 RetentionOfferROIAnnualized na página 312 RetentionOfferROIAnnualized Objetivo: Estimar o retorno de investimento anual por cliente por fazer uma oferta projetada para evitar desgastes. Uma oferta, diferente de uma ação, apresenta um custo diferente dependendo da aceitação ou não por parte do cliente. Sintaxe RetentionOfferROIAnnualized(SaveProbability, ResponseProbability, NetRevenueAtRisk, CostOfOffer, CostOfFulfilment, DaysToROI) Argumentos 312 Tipo Nome Descrição numérico SaveProbability A probabilidade estimada de que o cliente será "salvo" (durante o período em análise) como resultado da ação efetuada numérico ResponseProbability A probabilidade estimada de o cliente responder à oferta numérico NetRevenueAtRisk A receita líquida estimada que será perdida se o cliente for submetido a desgaste durante o período em análise numérico CostOfOffer O custo estimado da oferta (independente de o cliente responder) Portrait Miner 7.0A Capítulo 25: Funções de retorno de investimento Tipo Nome Descrição numérico CostOfFulfilment O custo estimado de concretização de uma resposta positiva à oferta numérico DaysToROI O número de dias que se espera ser necessário para alcançar o retorno de investimento fornecido Resultado Tipo Descrição numérico O retorno de investimento anual estimado por cliente de uma oferta projetada para evitar desgastes Observação: • Dizer que um cliente está "salvo" significa que "foi influenciado a não sair quando o cliente, pelo contrário, o teria feito". Esse valor é deduzido da elevação na taxa de desgaste produzida por um modelo de elevação. Se preferir, pode ser calculado como P (desgaste|nenhuma ação) - P (desgaste|ação). • A receita líquida em risco deve ser uma receita líquida ignorando o custo da ação projetada para evitar desgastes. Consulte também ActionROI na página 304 ActionROIAnnualized na página 305 OfferROI na página 306 OfferROIAnnualized na página 307 RetentionActionROI na página 308 RetentionActionROIAnnualized na página 310 RetentionOfferROI na página 311 Guia de referência de comando de compilação de dados e do TML 313 Capítulo Funções diversas Nesta seção: • • • • • dblookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316 member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317 rankOrder, rankOrderApprox . . . . . . . . . . . . . . . . . . . . . .319 rankOrderMean, rankOrderApproxMean . . . . . . . . . . . .320 rownum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321 26 dblookup dblookup Objetivo: Pesquisar valores em uma tabela de referência (armazenada como um focus). Sintaxe dblookup(d, k, f, x) Argumentos Tipo Nome Descrição string d O nome do caminho da tabela de pesquisa string k O nome do campo-chave na tabela de pesquisa string f O nome de um outro campo na tabela de pesquisa como o campo k x O valor de pesquisa Resultado 316 Tipo Descrição como o campo f O valor y no campo f da tabela d, para o registro indexado pelo valor x que ocorre no campo-chave k Portrait Miner 7.0A Capítulo 26: Funções diversas Observação: • Essa função deve ser usada somente para tabelas de pesquisa pequenas. Se a tabela de pesquisa for comparável em tamanho a uma tabela de cliente ou de transação, deve ser considerado efetuar uma junção. • Se o valor de pesquisa não ocorrer no campo-chave, é retornado o valor nulo. • Se o valor de pesquisa ocorrer mais de uma vez no campo-chave, é usado o primeiro valor. • O espaço em branco à direita é excluído do valor de pesquisa, mas não dos valores do campo-chave na tabela de pesquisa. Isso pode provocar um comportamento inesperado se o campo-chave na tabela de pesquisa apresentar valores com espaço em branco à direita. • Para compatibilidade com versões anteriores, é possível prefixar o nome do caminho da tabela de pesquisa com o string focus:. Exemplo Em um focus, a loja na qual um cliente compra com mais frequência é registrada no PopularShop. Um outro focus stores.ftr contém uma tabela que descreve as instalações em cada loja: Nesse focus, StoreCode é o campo-chave, e o campo HasFuel indica se cada loja tem um posto de gasolina. A loja 105 tem um posto de gasolina, as lojas 299 e 204 não, e assim por diante; a loja 189 não está na tabela de pesquisa. Para derivar um campo que indique se a loja favorita de um cliente tem um posto de gasolina: PopularShop dblookup("focus:stores.ftr", "StoreCode", "HasFuel", PopularShop) 105 1 299 0 204 0 189 null member Objetivo: Determinar o conjunto de associação. Sintaxe member(x, , , ...) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O valor a ser testado como x , , ... Os elementos do conjunto Resultado Guia de referência de comando de compilação de dados e do TML 317 member Tipo Descrição inteiro 1 ("true") se x estiver no conjunto ("false") caso contrário ;0 Observação: • Só é possível usar valores literais (números, strings ou datas) na lista de elementos do conjunto. • Normalmente, é mais eficiente usar a função member que uma disjunção de testes de igualdade. Por exemplo, a expressão strmember(F, "a", "b", "c") é mais rápida para avaliar que F = "a" or F = "b" or F = "c". • Para compatibilidade com versões anteriores, é possível usar a função strmember em vez da member quando os argumentos são strings. • Os espaços em branco à direita em valores de string não são ignorados. Exemplos Usar os dois primeiros caracteres de um campo StateCode para identificar os clientes da Costa Oeste: StateCode member (substr (StateCode, 0, 1), "CA", "OR", WA") OR009 1 CA043 1 UT005 0 WA027 1 Para marcar clientes cujo número de telefone de 10 dígitos apresente códigos de área de Edimburgo (131) ou Glasgow (141) (determinando os primeiros três dígitos por meio do operador div [consulte Operadores aritméticos na página 193]): TelNo if member (TelNo div 10000000, 131, 141) then "Edin/Glas" else null 1312204491 Edin/Glas 1753833999 null 1611234567 null 1417654321 Edin/Glas Consulte também Dividir agregações: a cláusula by na página 154 318 Portrait Miner 7.0A Capítulo 26: Funções diversas rankOrder, rankOrderApprox Objetivo: Identificar a classificação de um valor em uma lista de valores. Sintaxe rankOrder (x, , , ...) rankOrderApprox (x, , , ...) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O valor a ser classificado como x , , ... A lista de valores para comparação Resultado Tipo Descrição inteiro A posição da primeira ocorrência de x dentro da lista de valores obtidos na classificação , , ... em ordem descendente (do último para o primeiro no caso de datas; ordem alfabética inversa no caso de strings). Se x não aparecer na lista, rankOrder devolve um nulo, enquanto rankOrderApprox devolve a posição de x na lista de valores obtida na classificação de x, , , ... em ordem descendente. Observação: • Quando o valor a ser classificado aparecer apenas uma vez na lista de valores, rankOrder, rankOrderApprox, rankOrderMean e rankOrderApproxMean produzirão o mesmo resultado. • Quando o valor a ser classificado aparecer mais de uma vez na lista de valores, rankOrderApprox produzirá o mesmo resultado que rankOrder. • Quando o valor a ser classificado não aparecer na lista de valores, rankOrderApprox produzirá o mesmo resultado que rankOrderApproxMean. • Para as strings, "ordem alfabética" significa a ordem natural de representação dos caracteres. Exemplos rankOrder(6,74, 6,74, 1,99, 0,00, 9,27) é igual a 2. rankOrderApprox(6,74, 1,99, 0,00, 9,27) é igual a 2. Verificar a classificação do número de chamadas telefônicas do cliente no 4º trimestre do ano: Guia de referência de comando de compilação de dados e do TML 319 rankOrderMean, rankOrderApproxMean rankOrder(CallsQ4, CallsQ1, CallsQ2, CallsQ3, CallsQ4) Verificar a classificação do número de chamadas telefônicas do cliente no mês 5 com os 4 anteriores: RankOrderApprox(CallsM5, CallsM1, CallsM2, CallsM3, CallsM4) Consulte também rankOrderMean, rankOrderApproxMean na página 320 rankOrderMean, rankOrderApproxMean Objetivo: Identificar a classificação de um valor em uma lista de valores, ou sua classificação média, se aparecer várias vezes. Sintaxe rankOrderMean(x, , , ...) rankOrderApproxMean(x, , , ...) Argumentos Tipo Nome Descrição inteiro, real, data ou string x O valor a ser classificado como x , , ... A lista de valores para comparação Resultado Tipo Descrição real A classificação média de x na lista de valores obtidos na classificação , , ... em ordem descendente (do último para o primeiro no caso de datas; em ordem alfabética inversa no caso de strings). Se x não aparecer na lista, rankOrderMeandevolve um nulo, enquanto rankOrderApproxMeandevolve a posição de x na lista de valores obtida na classificação de x, , , ... em ordem descendente. Observação: • Quando o valor a ser classificado surge apenas uma vez na lista de valores, rankOrder, rankOrderApprox, rankOrderMean e rankOrderApproxMean produzem o mesmo resultado. • Quando o valor a ser classificado aparecer mais de uma vez na lista de valores, rankOrderApproxMean produzirá o mesmo resultado que rankOrderMean. • Quando o valor a ser classificado não aparecer na lista de valores, rankOrderApproxMean produzirá o mesmo resultado que rankOrderApprox. 320 Portrait Miner 7.0A Capítulo 26: Funções diversas • Para as strings, "ordem alfabética" significa a ordem natural de representação dos caracteres. Exemplos rankOrderMean(6,74, 6,74, 1,99, 6,74, 9,27) é igual a 2,5. rankOrderApproxMean(6,74, 1,99, 6,74, 9,27, 6,74) é igual a 2,5. Consulte também rankOrder, rankOrderApprox na página 319 rownum Objetivo: Gerar o número de cada linha na tabela. Sintaxe rownum() Argumentos Nenhum Resultado Tipo Descrição inteiro Um número de índice de 1 até o número de registros na tabela Observação: É possível usar essa função somente em uma derivação do Decision Studio, no arquivo de derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo de rastreamento para o qstrack ou em um arquivo de seleções para o qsselect. Exemplos Adicionar uma coluna de índice a um conjunto de dados de N-registros, com valores ID rownum() AZ195 1 DI539 2 JD974 3 BY643 4 Guia de referência de comando de compilação de dados e do TML : 321 Capítulo Binnings Nesta seção: • • • • • • • • • • • • • • • • • bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324 Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325 DayFrom, WeekFrom, MonthFrom, YearFrom . . . . . . . .326 DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326 DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins . . . . . . .327 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost . . . . . . . . .328 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost .331 DayRange, WeekRange, MonthRange, YearRange . . . .332 DayTo, WeekTo, MonthTo, YearTo . . . . . . . . . . . . . . . . . .333 EqualRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334 EqualRangeWidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334 NegativeNonNegative . . . . . . . . . . . . . . . . . . . . . . . . . . . .335 PreDuringPost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 PrePost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 Sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337 27 bin bin Objetivo: Obtém um índice do bin correspondente a um valor. Sintaxe bin(binning, x) Argumentos Tipo Nome Descrição binning binning Um binning nomeado, com valores de parâmetros (é necessário que sejam valores literais) entre parênteses, se necessário inteiro, real, data ou string x Um valor compatível com o binning Resultado Tipo Descrição inteiro O índice do bin no qual x está situado Observação: • Os índices de bin são inteiros positivos. Para um binning numérico com n bins nominais (numerados como 2 para n + 1), os bins finais inferior e superior estão numeradas como 1 e n + 2, respectivamente, enquanto os bins nulos e não classificados estão enumerados como n + 3 e n + 4. • Essa função não está disponível no Decision Studio. Porém, se x for um campo e b o binning primário associado a x, é possível atingir o mesmo resultado usando segindex: segindex() by x Exemplos Dividir agregações usando o binning de intervalo real EqualRange no campo Amount, resultando em uma agregação segmentada de oito partes (quatro bins internos com valores entre 20 e 100 mais dois bins finais, um bin nulo e um bin não classificado): create totalPointsByAmountBands := sum(PointsRedeemed) by bin(EqualRange(20, 100, 4), Amount); Dividir agregações em oito segmentos de acordo com o binning de campanha PrePost, a começar em maio de 1999 e com agregados do mês anterior e posterior à campanha: create totalSpendPrePostMayCampaign_ := sum(Amount) by bin(PrePost(todate(19990401), todate(19990501), todate(19990601)), PurchaseDate); Consulte também 324 Portrait Miner 7.0A Capítulo 27: Binnings Boolean na página 325 DayFrom, WeekFrom, MonthFrom, YearFrom na página 326 DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom na página 326 DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins na página 327 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página 328 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo na página 329 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth na página 330 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost na página 331 DayRange, WeekRange, MonthRange, YearRange na página 332 DayTo, WeekTo, MonthTo, YearTo na página 333 EqualRange na página 334 EqualRangeWidth na página 334 NegativeNonNegative na página 335 PreDuringPost na página 336 PrePost na página 336 Sign na página 337 Dividir agregações: a cláusula by na página 154 Boolean Objetivo: Colocar valores booleanos em bins [consulte Dados booleanos na página 183]. Parâmetros Nenhum Resultado Índice do Bin Valores 1 false 2 true 3 null [consulte O valor nulo na página 182] 4 não classificado Guia de referência de comando de compilação de dados e do TML 325 DayFrom, WeekFrom, MonthFrom, YearFrom DayFrom, WeekFrom, MonthFrom, YearFrom Objetivo: Binar valores de data em um número específico de períodos (dias, semanas, meses ou anos) após uma data. Parâmetros Tipo Nome Descrição data a ("start_date") O início da porção periódica do binning inteiro n ("num_bins") O número de períodos (dias, semanas, meses ou anos) na porção periódica do binning Resultado Índice do Bin Valores 1 datas que precedem a; bin final inferior 2, ..., n + 1 os n períodos consecutivos após a n+2 datas n períodos após a e mais tarde; bin final superior n+3 null [consulte O valor nulo na página 182] n+4 não classificado Consulte também DayRange, WeekRange, MonthRange, YearRange na página 332 DayTo, WeekTo, MonthTo, YearTo na página 333 DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom Objetivo: Colocar em bins valores de datas em um número específico de períodos após uma data, onde um período é um número específico de dias, semanas, meses ou anos. Parâmetros 326 Portrait Miner 7.0A Capítulo 27: Binnings Tipo Nome Descrição data a ("start_date") O início da porção periódica do binning inteiro m ("width") O número de unidades (dias, semanas, meses ou anos) em um período inteiro n ("num_bins") O número de bins na porção periódica do binning Resultado Índice do Bin Valores 1 datas que precedem a; bin final inferior 2, ..., n + 1 os n períodos consecutivos (cada um com m unidades) após a n+2 datas n x m unidades após a e posterior; o bin final superior n+3 null [consulte O valor nulo na página 182] n+4 não classificado Consulte também DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página 328 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo na página 329 DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins Objetivo: Colocar valores de data em bins em aproximadamente o número específico de períodos entre duas datas fornecidas, onde o período é um múltiplo fixo da unidade (dia, semana, mês ou ano). Parâmetros Tipo Nome Descrição data a ("start_date") O início da porção periódica do binning data b ("end_date") O final da porção periódica do binning Guia de referência de comando de compilação de dados e do TML 327 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost Tipo Nome Descrição inteiro n ("num_bins") O número alvo dos períodos (múltiplos de um dia, semana, mês ou anos) na porção periódica do binning Resultado Índice do Bin Valores 1 datas que precedem a; bin final inferior 2, ..., N - 3 períodos entre a e b N-2 datas b e após, bin final superior N-1 null [consulte O valor nulo na página 182] N não classificado Observação: • Esses binnings são como os binnings DayRange, WeekRange, MonthRange e YearRange [consulteDayRange, WeekRange, MonthRange, YearRange na página 332], exceto que o período pode ser de duas ou mais unidades (dias, semanas, meses ou anos), para produzir aproximadamente o número alvo de bins. • Quando o período é de duas ou mais unidades, é possível ao bin N - 3 ser mais curto que os bins 2 para N - 4. Consulte também DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth na página 330 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost Objetivo: Colocar em bins valores de data em números específicos de bins, antes e depois de uma data de referência fornecida, onde cada bin é um múltiplo da unidade (dia, semana, mês ou ano). Parâmetros 328 Tipo Nome Descrição data a ("ref_date") A data de referência para o binning inteiro m ("width") O número de bins antes e depois da data de referência Portrait Miner 7.0A Capítulo 27: Binnings Tipo Nome Descrição inteiro n ("num_bins") O número de unidades (dias, semanas, meses ou anos) em cada bin Resultado Índice do Bin Valores 1 datas anteriores a n x m unidades antes de a; o bin final inferior 2, ..., n + 1 os n períodos consecutivos (cada um com m unidades) precedendo a n + 2, ..., 2n + 1 os n períodos consecutivos (cada um com m unidades) após a 2n + 2 datas n x m unidades após a e posterior; o bin final superior 2n + 3 null [consulte O valor nulo na página 182] 2n + 4 não classificado Consulte também DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom na página 326 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo na página 329 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost na página 331 PreDuringPost na página 336 PrePost na página 336 DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo Objetivo: Colocar em bins valores de datas em um número específico de períodos precedendo uma data, onde um período é um número específico de dias, semanas, meses ou anos. Parâmetros Tipo Nome Descrição data b ("end_date") O final da porção periódica do binning Guia de referência de comando de compilação de dados e do TML 329 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth Tipo Nome Descrição inteiro m ("width") O número de unidades (dias, semanas, meses ou anos) em um período inteiro n ("num_bins") O número de bins na porção periódica do binning Resultado Índice do Bin Valores 1 datas anteriores a n x m unidades antes de a; o bin final inferior 2, ..., n + 1 os n períodos consecutivos (cada um com m unidades) precedendo a n+2 datas a e posteriores; bin final superior n+3 null [consulte O valor nulo na página 182] n+4 não classificado Consulte também DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom na página 326 DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página 328 DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth Objetivo: Colocar valores de data em bins em períodos entre duas datas fornecidas, onde o período é um múltiplo especificado da unidade (dia, semana, mês ou ano). Parâmetros 330 Tipo Nome Descrição data a ("start_date") O início da porção periódica do binning data b ("end_date") O final da porção periódica do binning inteiro m ("width") O número de unidades (dias, semanas, meses ou anos) em um período Portrait Miner 7.0A Capítulo 27: Binnings Resultado Índice do Bin Valores 1 datas que precedem a; bin final inferior 2, ..., N - 3 períodos entre a e b N-2 datas b e após, bin final superior N-1 null [consulte O valor nulo na página 182] N não classificado Observação: • Esses binnings são como os binnings DayRange, WeekRange, MonthRange e YearRange [consulteDayRange, WeekRange, MonthRange, YearRange na página 332], exceto que o período pode ser de duas ou mais unidades (dias, semanas, meses ou anos). • Quando o período é de duas ou mais unidades, é possível ao bin N - 3 ser mais curto que os bins 2 para N - 4. Consulte também DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins na página 327 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost Objetivo: Binar valores de datas em números específicos de períodos (dias, semanas, meses ou anos) precedendo e seguindo uma data de referência fornecida. Parâmetros Tipo Nome Descrição data a ("ref_date") A data de referência para o binning inteiro m ("before") O número de períodos (dias, semanas, meses ou anos) a binar antes da data de referência inteiro n ("after") O número de períodos a binar antes da data de referência Resultado Guia de referência de comando de compilação de dados e do TML 331 DayRange, WeekRange, MonthRange, YearRange Índice do Bin Valores 1 datas anteriores aos períodos m antes de a; bin final inferior 2, ..., m + 1 os m períodos consecutivos precedendo a m + 2, ..., m + n + 1 os n períodos consecutivos após a m+n+2 datas n períodos após a e mais tarde; bin final superior m+n+3 null [consulte O valor nulo na página 182] m+n+4 não classificado Consulte também DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página 328 PreDuringPost na página 336 PrePost na página 336 DayRange, WeekRange, MonthRange, YearRange Objetivo: Binar valores de data em períodos (dias, semanas, meses ou anos) entre duas datas fornecidas. Parâmetros Tipo Nome Descrição data a ("start_date") O início da porção periódica do binning data b ("end_date") O final da porção periódica do binning Resultado 332 Índice do Bin Valores 1 datas que precedem a; bin final inferior 2, ..., N - 3 períodos (dias, semanas, meses ou anos) entre a eb N-2 datas b e após, bin final superior N-1 null [consulte O valor nulo na página 182] Portrait Miner 7.0A Capítulo 27: Binnings Índice do Bin Valores N não classificado Observação: • Se houver menos de um período completo entre a e b, o bin 2 contém datas entre a (inclusive) e b (exclusive). • Se não houver um número exato de períodos entre a e b (mas houver pelo menos um período completo), o bin, imediatamente anterior a b, é ampliado para acomodar o excesso. Consulte também DayFrom, WeekFrom, MonthFrom, YearFrom na página 326 DayTo, WeekTo, MonthTo, YearTo na página 333 DayTo, WeekTo, MonthTo, YearTo Objetivo: Colocar valores de data em bins em um número específico de períodos (dias, semanas, meses ou anos) após uma data. Parâmetros Tipo Nome Descrição data b ("end_date") O final da porção periódica do binning inteiro n ("num_bins") O número de períodos (dias, semanas, meses ou anos) na porção periódica do binning Resultado Índice do Bin Valores 1 datas anteriores a n períodos antes de b; bin final inferior 2, ..., n + 1 Os n períodos consecutivos precedendo b n+2 datas b e após, bin final superior n+3 null [consulte O valor nulo na página 182] n+4 não classificado Consulte também DayFrom, WeekFrom, MonthFrom, YearFrom na página 326 Guia de referência de comando de compilação de dados e do TML 333 EqualRange DayRange, WeekRange, MonthRange, YearRange na página 332 EqualRange Objetivo: Binar valores numéricos em um número específico de intervalos com largura igual. Parâmetros Tipo Nome Descrição real a ("from") O limite inferior da porção de intervalo igual do binning real b ("to") O limite superior da porção de intervalo igual do binning inteiro n ("num_bins") O número de bins na porção de intervalo igual do binning Resultado Índice do Bin Valores 1 ; o último bin inferior 2, ..., n + 1 [a, a + (b - a)/n), ..., [b - (b - a)/n, b) n+2 ; o último bin superior n+3 null [consulte O valor nulo na página 182] n+4 não classificado Consulte também EqualRangeWidth na página 334 EqualRangeWidth Objetivo: Colocar em bins valores numéricos em intervalos de uma largura específica. Parâmetros 334 Tipo Nome Descrição real a ("from") O limite inferior da porção de intervalo igual do binning Portrait Miner 7.0A Capítulo 27: Binnings Tipo Nome Descrição real b ("to") O limite superior da porção de intervalo igual do binning real r ("width") A largura dos bins na porção de intervalo igual do binning Resultado Índice do Bin 1 Valores ; o último bin inferior 2, ..., N - 3 bins de largura igual, de largura aproximada r N-2 o bin final superior. N-1 null [consulte O valor nulo na página 182] N não classificado Observação: Se a - b não for um múltiplo exato de r, é usada uma aproximação de r para que os bins entre a e b sejam de largura igual. Consulte também EqualRange na página 334 NegativeNonNegative Objetivo: Colocar valores numéricos em bins de acordo com o sinal, agrupamento 0 com valores positivos. Parâmetros Nenhum Resultado Índice do Bin 1 2 Valores ; ou seja, valores negativos ; ou seja, valores não negativos 3 null [consulte O valor nulo na página 182] 4 não classificado Consulte também Sign na página 337 Guia de referência de comando de compilação de dados e do TML 335 PreDuringPost PreDuringPost Objetivo: Binar valores de data em períodos de pré-campanha, durante a campanha e pós-campanha. Parâmetros Tipo Nome Descrição data a ("pre_date") O início do período de pré-campanha data b ("campaign_start_date") O início da campanha data c ("campaign_end_date") O final da campanha data d ("post_date") O final do período pós-campanha Resultado Índice do Bin Valores 1 datas que precedem a; bin final inferior 2 datas entre a (inclusive) e b (exclusive) 3 datas entre b (inclusive) e c (exclusive) 4 datas entre c (inclusive) e d (exclusive) 5 datas d e posteriores; bin final superior 6 null [consulte O valor nulo na página 182] 7 não classificado Consulte também DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página 328 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost na página 331 PrePost na página 336 PrePost Objetivo: Binar valores da data em períodos de pré-campanha e pós-campanha. Parâmetros 336 Portrait Miner 7.0A Capítulo 27: Binnings Tipo Nome Descrição data a ("pre_date") O início do período de pré-campanha data b ("campaign_date") A data da campanha data c ("post_date") O final do período pós-campanha Resultado Índice do Bin Valores 1 datas que precedem a; bin final inferior 2 datas entre a (inclusive) e b (exclusive) 3 datas entre b (inclusive) e c (exclusive) 4 datas c e posteriores; bin final superior 5 null [consulte O valor nulo na página 182] 6 não classificado Consulte também DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página 328 DayPrePost, WeekPrePost, MonthPrePost, YearPrePost na página 331 PreDuringPost na página 336 Sign Objetivo: Colocar valores numéricos em bins de acordo com o sinal. Parâmetros Nenhum Resultado Índice do Bin Valores 1 2 3 ; ou seja, valores negativos 0 ; ou seja, valores positivos 4 null [consulte O valor nulo na página 182] 5 não classificado Consulte também Guia de referência de comando de compilação de dados e do TML 337 Sign NegativeNonNegative na página 335 338 Portrait Miner 7.0A Capítulo XML no Portrait Miner Nesta seção: • • • • • • • • • • • XML no Portrait Miner . . . . . . . . . . . . . . . . . . . . . . . . . . . .340 Especificações de metadados para qsimportmetadata .341 Especificação de agregação para qsmeasure . . . . . . . .347 Especificações de derivação para o qsderive . . . . . . . .349 Especificação de seleção para qsselect . . . . . . . . . . . .350 Especificações da tabela de referência cruzada para qsxt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351 Especificação de mapeamento do campo do nome para qsrenamefields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353 Especificação da compilação da árvore de decisão para qsdecisiontree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .354 Especificação da compilação do scorecard parna árvore de decisãoa qsscorecard . . . . . . . . . . . . . . . . . . . . . . . . .357 Especificações de binning . . . . . . . . . . . . . . . . . . . . . . . .358 Valores de atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366 28 XML no Portrait Miner XML no Portrait Miner Para permitir um fácil intercâmbio dos resultados com outras aplicações, XML é usado no Portrait Miner, de acordo com a definição do esquema XML do Portrait Miner, http://www.quadstone.com/xml É necessário que todas as entradas XML para os comandos de compilação de dados do Portrait Miner (e qualquer outra função do Portrait Miner implementada por meio do comando de compilação de dados do Portrait Miner) sejam efetuadas no namespace do Portrait Miner, http://support.portraitsoftware.com. A forma mais fácil de garantir isso é incluir o atributo xmlns="http://support.portraitsoftware.com" no elemento raiz do documento XML. Os arquivos XML criados pelo Portrait Miner incluem automaticamente um atributo schemaLocation opcional que aponta para os esquemas em http://www.quadstone.com/xml/qs6.0A. Se for usado um editor de reconhecimento de esquemas para criar arquivos XML, é possível acessar esses esquemas diretamente de sua instalação do Portrait Miner em: <pmhome>/server/qs6.0A/integration/schemas (onde <pmhome> é o diretório de instalação do Portrait Miner). Também é possível encontrar exemplos de como processar esses arquivos XML em: <pmhome>/server/qs6.0A/etc/xslt Consulte também Especificação de agregação para qsmeasure na página 347 Especificações de binning na página 358 Especificações da tabela de referência cruzada para qsxt na página 351 Especificação da compilação da árvore de decisão para qsdecisiontree na página 354 Especificações de derivação para o qsderive na página 349 Especificação de mapeamento do campo do nome para qsrenamefields na página 353 Especificações de metadados para qsimportmetadata na página 341 Especificação da compilação do scorecard parna árvore de decisãoa qsscorecard na página 357 Especificação de seleção para qsselect na página 350 340 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner Especificações de metadados para qsimportmetadata metadada Necessário Valor Descrição focus elemento O focus raiz Exemplos Descrever os metadados a importar. <?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 Descrição launch atributo de nome do focus O nome do subfocus, por padrão name atributo de nome do focus O nome para um subfocus objective atributo de nome do campo o nome do campo objetivo partition atributo de nome do campo o nome do campo objetivo comment elemento O comentário do focus history elemento O histórico do focus field elemento Os campos para onde importar os metadados focus elemento Definições de subfocus Observação: O atributo launch só pode surgir no focus da raiz. Todos os outros subfocus precisão ter um atributo name. Exemplo Descrever o focus raiz. <?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> Guia de referência de comando de compilação de dados e do TML 341 field nos metadados </focus> </metadata> field nos metadados Necessário Valor Descrição name atributo de nome do campo O nome do campo sendo definido ref atributo de nome do campo O nome do campo sendo referenciado Opcional Valor Descrição type Consulte field type O tipo de dado que representa esse campo length atributo integer O comprimento da representação da string analysis atributo binário Se esse campo for um candidato à análise export atributo binário Se esse campo for um campo de exportação comment elemento O comentário do campo binning elemento O binning do campo fdl elemento A expressão FLD da derivação do campo recordselection elemento A seleção do registro do campo Observação: • Quando um campo está sendo definido, como derivação, por exemplo, é necessário um atributo name. Quando está sendo referenciado, para inclusão em um subfocus, por exemplo, é necessário ter um atributo ref. • lenght e type só podem ser usados para definir um campo (quando o atributo name tiver sido fornecido). Descrever um campo de string: <field name="HomePostCode" type="string" length="8"/> Descrever um candidato à análise: <field name="TimeAtAddressMonths" type="integer" analysis="true"/> Consulte também Especificações de binning na página 358 342 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner fdl Necessário Valor Descrição content text A expressão FDL para descrever a derivação do campo Opcional Valor Descrição seed atributo integer A semente numérica para o gerador de número aleatório Exemplos <fdl>mode(Store)</fdl> <fdl>if PaymentMethod = "CA" then Amount else 0 </fdl> <fdl seed="123">rndUniform()</fdl> comment Necessário Valor Descrição content text A descrição do texto para o comentário Necessário Valor Descrição xhtml atributo binário Um comentário é formatado como XHTML div elemento da string A descrição do texto formatado para o comentário, pode conter qualquer marcação XHTML permitida em um elemento <div> ou Observação: Quando o atributo xhtml é usado, assume sempre o valor true. Exemplos Adicionar um comentário a um focus: <?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> Guia de referência de comando de compilação de dados e do TML 343 history Adicionar um comentário formatado a um focus: <?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> history O histórico do focus é um elemento histórico único que contém uma sequência não vazia de elementos de operação. Cada elemento de operação é somente texto simples representando apenas um comando de compilação de dados do Portrait Miner aplicado ao focus. Necessário Valor Descrição operation elementos de string Uma ação particular no histórico Exemplo Descrever o histórico de todas as ações no focus: <history> <operation>qsimportflat -input DB.fdd -output DB.ftr</operation> <operation>qsupdate -from template.ftr -to DB.ftr</operation> </history> recordselection Opcional Valor Descrição numérico elemento A seleção de registro numérico date elemento A seleção de registro de data categorical elemento A seleção de registro categórico Observação: O elemento recordselection leva um dos subelementos numeric, date ou categorical Exemplos 344 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner Selecionar intervalo integer entre -2677 (inclusivo) e 16808 (exclusivo), excluindo os nulos: <field name="Income" type="integer"> <recordselection> <numeric nullhandling="exclude"> <range min="-2677" minisincluded="true" max="16808" maxisincluded="false"/> </numeric> </recordselection> </field> numeric Necessário Valor Descrição nullhandling consulte nullhandling Especifica como a seleção de registro lida com valores nulos Opcional Valor Descrição range elemento Especifica a seleção do intervalo numérico Observação: O elemento numeric aceita vários subelementos range Exemplo Remover uma seleção de campo existente e qualquer seleção Nula: <field name="Age"> <recordselection> <numeric nullhandling="nomention"/> </recordselection> </field> date Necessário Valor Descrição nullhandling consulte nullhandling Especifica como a seleção de registro lida com valores nulos Opcional Valor Descrição range elemento Especifica a seleção de intervalo de data Observação: O elemento date aceita vários subelementos range Exemplo Guia de referência de comando de compilação de dados e do TML 345 categorical Selecionar intervalo de data, somente disponível com pontos finais inclusivos e datas especificadas num formato fixo: <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"/> <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 Necessário Valor Descrição nullhandling consulte nullhandling Especifica como a seleção de registro lida com valores nulos otherstatus consulte otherstatus Especifica se outra categoria é selecionada ou desmarcada. Opcional Valor Descrição select elemento Os valores de categoria na seleção Observação: O elemento categorical aceita vários subelementos select. Exemplo Seleção categórica que usa o otherstatus para desmarcar qualquer campo não mencionado explicitamente, por exemplo, seleciona somente categorias D e E: <field name="Lifestage"> <recordselection> <categorical nullhandling="selected" otherstatus="deselected"> <select status="selected" value="D"/> <select status="selected" value="E"/> </categorical> </recordselection> </field> Remover seleção de um campo categórico: <field ref="Lifestage"> <recordselection> <categorical nullhandling="selected" otherstatus="selected"> </categorical> 346 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner </recordselection> </field> range Opcional Valor Descrição min atributo numeric ou date O intervalo mínimo da seleção do registro max atributo numeric ou date O intervalo máximo da seleção do registro minisincluded atributo binário Inclui esse valor no intervalo mínimo maxisincluded atributo binário Inclui esse valor no intervalo máximo Observação: O elemento range exige pelo menos um atributo min e um max. select Necessário Valor Descrição value atributo de string O nome da categoria status consulte status Inclui ou exclui da seleção Especificação de agregação para qsmeasure aggregations Necessário Valor Descrição field elementos As definições do campo Exemplo Descrever a criação de dois novos 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> Guia de referência de comando de compilação de dados e do TML 347 field nas agregações </field> </aggregations> field nas agregações Necessário Valor Descrição name atributo de nome do campo O nome do campo a ser criado context consulte measure context Se esse campo deve ser usado em uma agregação, estatística ou arquivo de rastreio fdl elemento A expressão FDL para descrever a agregação Opcional Valor Descrição type Consulte field type O tipo de dados do campo a ser criado length atributo integer O comprimento de um campo de string temporary atributo binário Se esse campo for criado no focus de saída by elemento da string A função de divisão where elemento da string O filtro de registro da expressão FDL default elemento da string O valor padrão da agregação Exemplos Descrever um campo com a agregação mode no campo Store: <field name="mostCommonStore" context="aggregation"> <fdl>mode(Store)</fdl> </field> Descrever um campo com a agregação mean no campo Amount, dividido pela função StoreSplitFunction: <field name="averageSpendInStore_" context="aggregation"> <fdl>mean(Amount)</fdl> <by>StoreSplitFunction(Store)</by> </field> 348 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner Especificações de derivação para o qsderive derivations Necessário Valor Descrição field elementos As definições do campo Exemplo Descrever um conjunto de três derivações: <?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 nas derivações Necessário Valor Descrição name atributo de nome do campo O nome do campo a ser criado fdl elemento A expressão FDL para descrever o campo a ser criado Opcional Valor Descrição type Consulte field type O tipo de dados do campo a ser criado length atributo integer O comprimento de um campo de string Exemplos Descrever um campo usando uma função interna: <field name="TransMonth"> <fdl>month(PurchaseDate)</fdl> </field> Guia de referência de comando de compilação de dados e do TML 349 Especificação de seleção para qsselect Descrever um campo usando apenas uma instrução de controle: <field name="CashRecd"> <fdl>if PaymentMethod = "CA" then Amount else 0</fdl> </field> Descrever um campo aleatório com uma semente específica: <field name="Random"> <fdl seed="123">rndUniform()</fdl> </field> Especificação de seleção para qsselect selections Opcional Valor Descrição field elementos Os campos a criar nessa seleção Exemplo Descrever uma seleção aleatória: <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 nas seleções Necessário Valor Descrição name atributo de nome do campo O nome do campo a ser criado fdl elemento Expressão FDL para descrever a seleção do registro. Deve produzir um resultado de valor integer zero ou um context seleção Esse campo é para uso com o qsselect Exemplo Descrever uma seleção aleatória: <field name="random" context="selection"> <fdl seed="12345678">rndUniform() \< 0.1</fdl> </field> 350 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner Especificações da tabela de referência cruzada para qsxt crosstabset Necessário Valor Descrição crosstab elementos As tabelas de referência cruzada a serem avaliadas Opcional Valor Descrição profile atributo binário Se a crosstabset representa um perfil em vez de uma tabela de referência cruzada description elemento da string A descrição do crosstabset Exemplo Descrever apenas uma tabela de referência cruzada crosstabset: <?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> crosstab Necessário Valor Descrição indexscheme compact1 O esquema de indexação usado nessa tabela de referência cruzada specification elemento A especificação da tabela de referência cruzada Guia de referência de comando de compilação de dados e do TML 351 specification na tabela de referência cruzada Opcional Valor Descrição description elementos de string A descrição da tabela de referência cruzada Exemplo Descrever apenas uma tabela de referência cruzada crosstabset: <?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 na tabela de referência cruzada Necessário Valor Descrição function elementos As funções a serem usadas como medidas da tabela de referência cruzada Opcional Valor Descrição field elementos Os campos a serem usados como divisões de segmentação Exemplo Descrever uma tabela de referência cruzada dos campos Age e Gender com as medidas count() e mode(MaritalStatus): <specification> <field name="Age"/> <field name="Gender"/> <function name="count"/> <function name="mode"> <parameter>MaritalStatus</parameter> </function> </specification> 352 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner function Necessário Valor Descrição name atributo de nome do campo Identificar o nome da medida Opcional Valor Descrição parameter atributo de nome do campo Identificar o parâmetro de campo para a função Exemplos Descrever uma função sem parâmetros: <function name="count"/> Descrever uma função com apenas um parâmetro MaritalStatus: <function name="mode"> <parameter>MaritalStatus</parameter> </function> field na tabela de referência cruzada Necessário Valor Descrição name atributo de nome do campo O nome do campo a ser usado na tabela de referência cruzada Exemplo Especificar o campo Age para ser usado na tabela de referência cruzada: <field name="Age"/> Especificação de mapeamento do campo do nome para qsrenamefields mappingset Necessário Valor Descrição map elementos O mapeamento dos nomes dos campos Exemplo Guia de referência de comando de compilação de dados e do TML 353 map Descrever como renomear três 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 Necessário Valor Descrição name elemento de nome do campo O nome do campo a renomear alias elemento de nome do campo o novo nome do campo Exemplo Renomear campo StartDate para Initialized: <map> <name>StartDate</name> <alias>Initialized</alias> </map> Especificação da compilação da árvore de decisão para qsdecisiontree decisiontree Necessário Valor Descrição specification elemento A especificação da compilação da árvore de decisão Exemplo 354 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner Descrever uma especificação da compilação da árvore de decisão com o campo de objetivo Age e três candidatos à análise, criando o novo campo de resultado 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 na árvore de decisão Necessário Valor Descrição nlevels atributo integer A profundidade da árvore a ser compilada objectivefield elemento de nome do campo O campo de objetivo analysiscandidates elemento de nomes do campo Os candidatos à análise resultfield elemento de nome do campo O nome para o campo de resultados criado Opcional Valor Descrição splitconstraints elemento As restrições na compilação da árvore de decisão kwaysplitfield elemento de nome do campo O campo dividido do modok partitionfield elemento de nome do campo O campo de partição testtrain elemento A metodologia de teste/treinamento a ser usada Exemplo Descrever uma especificação da compilação da árvore de decisão com o campo de objetivo Age e três candidatos à análise, criando o novo campo de resultado PredictedAge: <specification nlevels="3"> <objectivefield> <field name="Age"/> </objectivefield> <analysiscandidates> <field name="Gender"/> Guia de referência de comando de compilação de dados e do TML 355 splitconstraints <field name="MaritalStatus"/> <field name="HomeOwner"/> </analysiscandidates> <resultfield> <field name="PredictedAge"/> </resultfield> </specification> Observação: • Se o elemento <partitionfield> está vazio, o qsdecisiontree irá ignorar qualquer partição existente anterior à compilação da árvore. • Se o elemento <kwaysplitfield> estiver vazio, o qsdecisiontree irá ignorar qualquer divisão modo k existente antes da compilação da árvore. splitconstraints Necessário Valor Descrição minpopsize atributo integer O tamanho mínimo de uma população de segmento minpopsizetreated atributo integer O tamanho mínimo da população do segmento tratada minpopsizecontrol atributo integer O tamanho mínimo da população do segmento de controle Opcional Valor Descrição combiningfunction consulte combining function A função de combinação usada para selecionar como a divisão final é escolhida Observação: • Quando é fornecido um elemento partitionfield, o minpopsizetreated ou minpopsizecontrol são atributos splitconstraint válidos. Caso contrário, somente o atributo minpopsize deve ser definido. • O atributo combiningfunction deve ser usado somente quando o elemento kwaysplitfield for definido. testtrain 356 Necessário Valor Descrição threshold atributo real A proporção dos registros, como um número entre zero e um, a ser usada para o treinamento da compilação da árvore de decisão namefield elemento de nome do campo O campo aleatório para definir a divisão do treinamento do teste Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner Exemplo <testtrain threshold="0.5"> <field name="randomField"/> </testtrain> Especificação da compilação do scorecard parna árvore de decisãoa qsscorecard scorecard Necessário Valor Descrição specification elemento A especificação da compilação do scorecard Exemplo Descrever uma especificação de compilação de um scorecard com o campo de objetivo Age e três candidatos à análise, criando o novo campo de resultado 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> <field name="Gender"/> <field name="MaritalStatus"/> <field name="HomeOwner"/> </analysiscandidates> <resultfield> <field name="PredictedAge"/> </resultfield> </specification> </scorecard> specification no scorecard Necessário Valor Descrição iscontinuous atributo binário Compila um scorecard contínuo-objetivo, independentemente da definição do modeltype modeltype consulte model types Que tipo de modelo (binary) a compilar (ignorado se iscontinuous for verdadeiro); Guia de referência de comando de compilação de dados e do TML 357 Especificações de binning Necessário Valor Descrição se esse não estiver definido, compila um scorecard contínuo-objetivo nfields atributo integer O número de campos no scorecard criado objectivefield elemento de nome do campo O campo de objetivo analysiscandidates elemento de nomes do campo Os candidatos à análise resultfield elemento de nome do campo O nome para o campo do resultado criado Opcional Valor Descrição correlationthreshold atributo real O limite acima do qual os candidatos à análise são excluídos por serem bastante correlacionados com o objetivo testtrain elemento A metodologia de teste/treinamento a ser usada Exemplo <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> Especificações de binning binning 358 Opcional Valor Descrição name atributo de string O nome do binning numeric elemento O binning numérico Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner Opcional Valor Descrição date elemento O binning de data geographic elemento O binning geográfico categorical elemento O binning categórico Observação: O elemento binning leva somente um subelemento numeric, date, geographical ou categorical. Exemplos Adicionar um binning numérico a um campo LoanAmount: <field name="LoanAmount"> <binning name="LoanAmount-1"> <numeric targetnbins="10" style="equalwidth"/> </binning> </field> Adicionar um binning categórico ao 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> Adicionar um binning de campo geográfico ao campo StateCode: <field name="StateCode"> <binning> <geographic> <maplocation>/home/data/maps/us.mif</maplocation> </geographic> </binning> </field> numeric Opcional Valor Descrição targetnbins atributo integer O número necessário de bins adjustnbins atributo binário Ajusta automaticamente o número de bins para criar bons limites de bin. Por padrão, é true Guia de referência de comando de compilação de dados e do TML 359 date Opcional Valor Descrição forcewholenumbered atributo binário Se um binning ou um campo de valor real deve ter limites de números inteiros style consulte bin style O tipo de binning aplicado binning consulte binning display A exibição do binning minendparam elemento A definição de limite inferior do bin. Por padrão, binning de largura igual usa bins finais auto, enquanto a população igual usa none maxendparam elemento A definição de limite superior do bin. Por padrão, binning de largura igual usa bins finais auto, enquanto a população igual usa none boundaries elemento Os limites do bin para o estilo de binning definido pelo usuário Exemplo Adicionar um binning numérico de população igual com dez intervalos para um campo: <binning name="LoanAmount-1"> <numeric targetnbins="10" style="equalwidth"/> </binning> date 360 Opcional Efeito targetnbins atributo integer O número necessário de bins binby consulte date period O período de tempo do binning reference consulte date reference A data a aplicar o bin por período de tempo binwidth atributo integer O número de períodos de tempo para um bin style consulte bin style O tipo de binning aplicado binning consulte binning display Como o binning deve ser exibido minendparam elemento A definição de limite inferior do bin. Por padrão, binning de largura igual usa bins finais auto, Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner Opcional Efeito enquanto a população igual usa none maxendparam elemento A definição de limite superior do bin. Por padrão, binning de largura igual usa bins finais auto, enquanto a população igual usa none boundaries elemento Os limites do bin para o estilo de binning definido pelo usuário Exemplo Criar um binning de data, por trimestres, a partir de 1º de Março de 1992. <date display="equalwidth" binwidth="1" binby="quarter" reference="auto" style="equalwidth"> <minendparam type="fixed"> <boundary>1992-03-01T00:00:00Z</boundary> </minendparam> <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 Necessário Valor Descrição categories elemento A descrição da hierarquia categórica hierarchylocation elemento de arquivo A localização do arquivo contém a descrição Guia de referência de comando de compilação de dados e do TML 361 categories Necessário Valor Descrição hierárquica categórica elemento selectn O número de categorias a criar Observação: Só é necessário um desses elementos para definir um binning categórico. Exemplo Descrever um binning categórico: <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> categories Necessário Valor Descrição category elementos Uma categoria na hierarquia Exemplo Descrever a hierarquia 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> 362 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner category Necessário Valor Descrição name atributo de string O nome da categoria value atributo numeric, date ou string O valor para essa categoria category elementos Uma descrição de subcategoria Opcional Valor Descrição levelname atributo de string O nome do nível da hierarquia categórica, necessário somente na primeira categoria em cada definição Observação: • Um elemento category tem um atributo value ou um elemento category. • Todas as categorias devem recursar à mesma profundidade. Exemplos Descrever o mapeamento de categoria entre o valor do campo e a etiqueta: <category name="female"> <category name="1" value="1"/> </category> Descrever o agrupamento categórico de muitos valores de campo para apenas uma 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 Necessário Valor Descrição n atributo integer O número de categorias a criar Opcional Valor Descrição mincatsize atributo integer O número mínimo de registros em cada categoria Guia de referência de comando de compilação de dados e do TML 363 geographic geographic Necessário Valor Descrição maplocation elemento de arquivo A localização do arquivo de mapa Exemplo Adicionar um binning de campo geográfico ao campo StateCode: <geographic> <maplocation>/home/data/maps/us.mif</maplocation> </geographic> minendparam Opcional Valor Descrição type consulte end bin style O tipo de bin final boundary elemento O valor fixo do bin final Exemplo Descrever um binning com o bin final inferior fixado ao valor 18 : <binning name="Age-1"> <numeric targetnbins="10" style="equalwidth"> <minendparam type="fixed"> <boundary falls="right">18.0</boundary> </minendparam> </numeric> </binning> maxendparam Opcional Valor Descrição type consulte end bin style O tipo de bin final boundary elemento O valor fixo do bin final Exemplo Descrever um binning com o limite superior do configurado para ser automaticamente definido pelo Portrait Miner: <binning name="Age-1"> <numeric targetnbins="10" style="equalpopulation"> <maxendparam type="auto"/> </numeric> </binning> 364 Portrait Miner 7.0A Capítulo 28: XML no Portrait Miner boundaries Opcional Valor Descrição endbins consulte end bins Quais bins finais estão disponíveis boundary elementos A definição do limite do bin Exemplo Definir os limites de um binning definido pelo usuário: <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 Necessário Valor Descrição content numérico ou data O valor do limite Opcional Valor Descrição type consulte end bin style O tipo de limite falls consulte boundary inclusion Se o limite é inclusivo ou exclusivo Observação: Os valores de data devem ser fornecidos no formato padrão AAAA-MM-DDTHH:MM:SSZ. Exemplo Definir o limite que inclui o valor 20: <boundary falls="right">20.0</boundary> Definir o limite que não inclui o valor 20: <boundary falls="left">30.0</boundary> Definir um limite de data: <boundary>1992-03-01T00:00:00Z</boundary> Guia de referência de comando de compilação de dados e do TML 365 Valores de atributos Valores de atributos 366 Nome 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 left | right binning display equalwidth | compactends date period auto | hour | minute | second | day | week | month | quarter | year | decade | century date reference auto | minend | maxend measure context aggregation | statistic | tracker combining function unused | mean | meanlessstddev | meanlesssqrtstddev | min model types risk | response | churn | satisfaction | dissatisfaction Portrait Miner 7.0A Índice * (operador FDL) 193 %, mod (operador FDL) 193 A abs (função FDL) 276 ActionROI (função FDL) 304 ActionROIAnnualized (função FDL) 305 addcenturies, addcenturiescountbackwards (funções FDL) 221 adddays (função FDL) 222 addhours (função FDL) 223 addminutes (função FDL) 223 addmonths, addmonthscountbackwards (funções FDL) 224 addseconds (função FDL) 226 addweeks (função FDL) 227 addyears, addyearscountbackwards (funções FDL) 228 adição 193 operador FDL 193 agregação 66 usando qsmeasure 66 agregação de registros 66 usando qsmeasure 66 agregar um campo 150 em um arquivo de agregações TML 150 alterar o nome de um arquivo de focus 93 usando qsmove 93 amostragem 290, 291, 292, 293, 294, 295 estratificada 293 particionamento 291 para subpopulações aproximadamente de mesmo tamanho 291 selecionando uma porcentagem exata de registros 292 selecionar um número exato de registros 292 teste/treinamento 290, 294 usando numericTestTrainSplit 290 usando testTrainSplit 294 amostragem (continuado) teste/treinamento/validação 290, 295 usando numericTestTrainValidateSplit 290 usando testTrainValidateSplit 295 amostragem estratificada 293 analisar um documento QMML usando qsqmmledit 132 análise cesta-mercado!usando qsruleminer 127 âncora 268 em uma expressão regular FDL 268 and (operador FDL) 196 any (função de agregação) 160, 163 em medições e derivações 160 argumentos de função (FDL) 190 arquivar um arquivo focus 95 usando qsarchive 95 arquivo de descrição de dado simples 135 criar a partir de QMML usando qslt 135 arquivo de descrição de dados simples 40 criar a partir de um arquivo simples usando qsgenfdd 40 arquivo de focus 92, 93, 94, 111 copiar usando qscopy (cópia independente) 92 copiar usando qslink (cópia associada) 93 excluir usando qsremove 94 mover/renomear usando qsmove 93 visualizar dependências e tamanhos de arquivos usando qsinfo 111 arquivo de texto 40, 42 criar metadados usando qsgenfdd 40 importar usando qsimportflat 42 arquivo simple 44 criar a partir de um focus usando qsexportflat 44 arquivo simples 40, 42 criar metadados usando qsgenfdd 40 importar usando qsimportflat 42 arredondar para um inteiro 278, 284 arredondar para baixo 278 arredondar para o inteiro mais próximo 284 arredondar para um número inteiro 276 arredondar para cima 276 árvore de decisão 107 criar um Modelo Instantâneo usando qsdtsnapshot 107 átomo 266 em uma expressão regular FDL 266 atribuição de variável (FDL) 188 atribuir um valor a uma variável 188 em FDL 188 auditoria de um focus 100 usando qsaudit 100 automatizar compilação de dados 28 usando qsbuild 28 avaliação condicional em FDL 185, 206, 207 usando a função cond 206 usando a função iff 207 usando expressões if e case 185 B bin (função FDL) 324 binnings 154 para dividir agregações 154 Boolean (binning) 325 C campo 63, 70, 74, 150 de agregação em um arquivo de agregações TML 150 derivar em derivações, rastreios e seleções TML ou arquivo de agregações 150 derivar usado qstrack 70 derivar usando qsderive 63 renomear usando qsrenamefields 74 campo de marcação 210 criar a partir de uma seleção 210 ceil (função FDL) 276 clamp (função FDL) 206 classe de caractere 266 em uma expressão regular FDL 266 classificar registros em um focus 62 using qssort 62 cláusula by (TML) 154 cláusula padrão (TML) 152 cláusula where (TML) 152 coincidência de strings 266 em FDL 266 coincidir padrões 266 em FDL 266 comandos de compilação de dados 16, 21 opções padrão de linha de comando 21 sobre 16 368 comandos de compilação de dados do Portrait Miner 16, 21 opções padrão de linha de comando 21 sobre 16 comentários 77, 78, 184 em FDL 184 exportar a partir de um focus para um arquivo XML 77 importar para um focus a partir de um arquivo XML 78 compatibilidade 183 dos tipos de dados em FDL 183 compatibilidade do tipo de dado 183 em FDL 183 compilar um documento QMML usando qsqmmledit 132 compilar um scorecard 117 usando qsscorecardwizard (cópia associada) 117 comprimento de uma string 259 concat (função FDL) 252 cond (função FDL) 206 Conectividade do Banco de Dados Aberto (ODBC) 32 criar ou modificar usando qsdbaccess 32 conexão do banco de dados 32 criar e modificar usando qsdbaccess 32 Conexão do Banco de Dados do Usuário 32 criar ou modificar usando qsdbaccess 32 confintlower (função de agregação) 160, 163 em medições e derivações 160 confintupper (função de agregação) 160, 164 em medições e derivações 160 conjunto de dados Excel 48, 49, 105 criar a partir de um focus usando qsexportstat 49 descrever usando qsdescribestat 105 importar usando qsimportstat 48 conjunto de dados SAS 48, 49, 105 criar a partir de um focus usando qsexportstat 49 descrever usando qsdescribestat 105 importar usando qsimportstat 48 conjunto de dados SPSS 48, 105 descrever usando qsdescribestat 105 importar usando qsimportstat 48 conjunto de dados SPSS dataset 49 criar a partir de um focus usando qsexportstat 49 conjunto de regras 132 adicionar ou excluir um documento QMML usando qsqmmledit 132 conversão de tipo de dado 184 em FDL 184 converter um arquivo de metadados 138 usando qsqsfmtosas 138 converter um arquivo QMML 137 usando qsqmml2sas 137 Portrait Miner 7.0A converter um arquivo QMML (continuado) usando qsqmml2sql 137 converter um campo 214, 215, 216 para um número integer 215 para um número real 215 para uma data 214 para uma string 216 cópia associada de um arquivo de focus 93 usando qslink 93 copiar metadados do focus 82 usando qsupdate 82 copiar um arquivo de focus 92, 93 usando qscopy (cópia independente) 92 usando qslink (cópia associada) 93 cos (função FDL) 277 count (aggregation function) 160 em medições e derivações 160 count (função de agregação) 165 countcenturies (função FDL) 229 countdays (função FDL) 229 counthours (função FDL) 230 countminutes (função FDL) 231 countnonnull/countnonnulls (função de agregação) 160, 165 em medições e derivações 160 countnull/countnulls (função de agregação) 160, 166 em medições e derivações 160 countseconds (função FDL) 232 countunique (função de agregação) 160, 167 em medições e derivações 160 countuniquenonnull (função de agregação) 160, 167 em medições e derivações 160 countweeks (função FDL) 233 countwholecenturies, countwholecenturiesbackwards (funções FDL) 234 countwholedays (função FDL) 235 countwholehours (função FDL) 236 countwholeminutes (função FDL) 236 countwholemonths, countwholemonthsbackwards (funções FDL) 237 countwholeseconds (função FDL) 239 countwholeweeks (função FDL) 240 countwholeyears, countwholeyearsbackwards (funções FDL) 241 countyears (função FDL) 242 criação de perfil de um focus 100 usando qsaudit 100 criar instrução (TML) 150 D dados booleanos 183 em FDL 183 dados de tempo 182 em FDL 182 dados de texto 182 em FDL 182 data 214 converter um campo para 214 day (função FDL) 243 DayFrom (binning) 326 DayMultipleFrom (binning) 326 DayMultipleNumBins (binning) 327 DayMultiplePrePost (binning) 328 DayMultipleTo (binning) 329 DayMultipleWidth (binning) 330 dayofweek (função FDL) 243 DayPrePost (binning) 331 DayRange (binning) 332 DayTo (binning) 333 dblookup (função FDL) 316 decis 175 em FDL 175 decision tree 123 compilando com qsdecisiontree 123 definição de função (FDL) 190 dependências entre focus 111 visualizar com qsinfo 111 derivar um campo 63, 70, 150 em derivações, rastreios e seleções TML ou arquivo de agregação 150 usando qsderive 63 usando qstrack 70 desigualdade 194 operador FDL 194 desvio padrão de um campo 176 distribuição binomial 298 distribuição exponencial 299 distribuição gama 300 distribuição normal 300 Distribuição poissoniana 301 div (operador FDL) 193 divisão 193 operadores FDL 193 documento QMML 132, 135 editar ou compilar usando qsqmmledit 132 transformar usando qslt 135 visualizar por meio de qsqmmlview 132 duplicar registros 87 remover usando qsmerge 87 E editar um documento QMML usando qsqmmledit 132 endswith (função FDL) 252 EqualRange (binning) 334 Guia de referência de comando de compilação de dados e do TML 369 EqualRangeWidth (binning) 334 estatística 156 avaliar em um arquivo de estatísticas TML 156 estatística de focus 156 avaliar um arquivo de estatísticas TML 156 excluir um arquivo de focus 94 usando qsremove 94 exp (função FDL) 277 exploração de sequência!usando qsruleminer 127 exportar dados 37, 38, 44, 49 para um arquivo SAS ou outro conjunto de dados de terceiros usando qsexportstat 49 para um arquivo simples usando qsexportflat 44 para uma tabela de banco de dados usando qsdbinsert 37 para uma tabela do banco de dados usando qsdbupdate 38 exportar metadados a partir de um focus para um arquivo XML 77 expressão aritmética 184 em FDL 184 expressão básica 184 em FDL 184 expressão case 187 em FDL 187 expressão case (FDL) 187 expressão if 186 em FDL 186 expressão if (FDL) 186 expressão lógica 184 em FDL 184 expressão regular 266, 270, 271, 272 composição 266 substituir a substring da primeira coincidência 272 substituir todas as substrings de coincidência 271 testar uma string para uma coincidência 270 expressões, lista de expressões 184 em FDL 184 extrair a partir de um arquivo compactado! usando qsunzip 96 F FDL 135, 180, 182, 184, 185, 188, 190, 193, 194, 196, 197, 204, 266 coincidência de strings 266 expressões if e case 185 expressões, lista de expressões 184 funções 190, 197 definidas pelo usuário 190 internas 197 operadores 193, 194, 196, 197 aritméticos 193 370 FDL (continuado) operadores (continuado) lógicos 196 precedência 197 relacionais 194 palavras reservadas 204 sobre 180 tipos de dados 182 transformar de ou para QMML usando qslt 135 variáveis 188 filtrar registros 152 em um arquivo de agregações TML 152 filtro de registro 152 em um arquivo de agregações TML 152 find (função FDL) 253 first (função de agregação) 160, 168 em medições e derivações 160 floor (função FDL) 278 focus 16, 33, 42, 44, 48, 49, 51, 62, 77, 78, 87, 100 classificar registros usando qssort 62 criação de um Perfil e Auditoria usando qsaudit 100 criar a partir de um arquivo SAS ou outro conjunto de dados de terceiros usando qsimportstat 48 criar a partir de uma tabela do banco de dados usando qsimportdb 33 criar a partir dos dados em outro focus usando qsimportfocus 51 criar um arquivo simples usando qsimportflat 42 exportar metadados para um arquivo XML 77 exportar para um arquivo SAS ou outro conjunto de dados de terceiros usando qsexportstat 49 exportar para um arquivo simples usando qsexportflat 44 importar metadados a partir de um arquivo XML 78 remover registros duplicados usando qsmerge 87 somente de leitura 16 focus do modelo 82 em qsupdate 82 focus somente de leitura 16 focus!descrevendo o uso do qsdescribe 104 formatação de data 55 para arquivos simples e expressões FDL 55 função 184, 190 em FDL 184 aplicar 184 em FDL!definindo 190 funções 197 em FDL 197 internas 197 funções de agregação 160 para uso em medições e derivações 160 Portrait Miner 7.0A funções de divisão 154 para dividir agregações 154 function attributes (FDL) 192 J gmt2edt (funções FDL) 244 juntar campos 84 usando qsjoin 84 juntar focus 84 usando qsjoin 84 juntar strings 252 H L hierarquia binning categórica 140 criar um mapa categórico usando qsmapgen 140 hour (função FDL) 244 last (função de agregação) 160, 169 em medições e derivações 160 left (função FDL) 254 letra 262, 263 maiúscula 263 converter uma string para 263 minúscula 262 converter uma string para 262 letra maiúscula 263 converter uma string para 263 letra minúscula 262 converter uma string para 262 Linguagem de Campo Derivado 180 consulte 180 literal de data 184 em FDL 184 literal de string 184 em FDL 184 literal numérico 184 em FDL 184 log (função FDL) 278 log10 (função FDL) 279 logbase (função FDL) 279 G I identificador 184 em FDL 184 identificar estatístico 184 em FDL 184 iff (função FDL) 207 ifnull (função FDL) 208 igualdade 194 operador FDL 194 importar dados 33, 42, 48, 51 de um arquivo SAS ou outro conjunto de dados de terceiros usando qsimportstat 48 de um arquivo simples usando qsimportflat 42 de um focus existente usando qsimportfocus 51 de uma tabela do banco de dados usando qsimportdb 33 importar metadados a partir de um arquivo XML para um focus 78 importar metadados a partir de um focus para outro 82 usando qsupdate 82 inicialização e atribuição da variável 188 em FDL 188 inicializar uma variável 188 em FDL 188 Instantâneo Modelo 106 descompactar usando qshtmlunpack 106 instrução calculate (TML) 156 instrução temporária (TML) 150 intervalo de caractere 266 em uma expressão regular FDL 266 isnull (função FDL) 209 isselected (função FDL) 210 M magnitude de um número 276 maior que (ou igual a) 194 operadores FDL 194 mapa de categoria 140 criar a partir de uma hierarquia binning categórica usando qsmapgen 140 mapa de categorias 140 criar a partir de uma hierarquia binning categórica usando qsmapgen 140 match (função FDL) 270 max (função de agregação) 160, 169 em medições e derivações 160 max, maxnonnull (funções FDL de multiargumento) 280 mean (função de agregação) 160, 170 em medições e derivações 160 Guia de referência de comando de compilação de dados e do TML 371 mean, meannonnull (funções FDL de multiargumento) 281 média 281 de uma lista de número 281 Média 170 dos valores em um campo 170 median (função de agregação) 160, 171 em medições e derivações 160 medição 66 usando qsmeasure 66 medidas de transação 66 usando qsmeasure 66 member (função FDL) 317 menor que (ou igual a) 194 operadores FDL 194 menos 193 operador FDL 193 mesclar focus 87 usando qsmerge 87 mesclar registros 87 usando qsmerge 87 metadados 40, 78, 82 copiar a partir de um focus para outro usando qsupdate 82 criar metadados de arquivo simples usando qsgenfdd 40 importar para um focus a partir de um arquivo XML 78 mid (função FDL) 255 min (função de agregação) 160, 171 em medições e derivações 160 min, minnonnull (funções FDL de multiargumento) 281 minute (função FDL) 245 mod, % (operador FDL) 193 mode (função de agregação) 160, 172 em medições e derivações 160 modelo 107 criar um Modelo Instantâneo usando qsdtsnapshot ou qsscsnapshot 107 moderatio (função de agregação) 160, 173 em medições e derivações 160 month (função FDL) 246 MonthFrom (binning) 326 MonthMultipleFrom (binning) 326 MonthMultipleNumBins (binning) 327 MonthMultiplePrePost (binning) 328 MonthMultipleTo (binning) 329 MonthMultipleWidth (binning) 330 MonthPrePost (binning) 331 MonthRange (binning) 332 MonthTo (binning) 333 mover um arquivo de focus 93 usando qsmove 93 372 multiplicação 193 operador FDL 193 N NegativeNonNegative (binning) 335 normalizar valores de campo 282 normalize (função FDL) 282 not (operador FDL) 196 now (função FDL) 246 numericTestTrainSplit (função FDL) 290 numericTestTrainValidateSplit (função FDL) 290 número aleatório 298, 299, 300, 301, 302 com distribuição binomial 298 com distribuição exponencial 299 com distribuição gama 300 com distribuição normal 300 com distribuição poissoniana 301 com distribuição uniforme em um intervalo 302 simular cara ou coroa 299 número de índice 175, 324 para um bin 324 para um segmento da tabela de referência cruzada 175 número integer 215 converter um campo para 215 número real 215 converter um campo para 215 números aleatórios 298 em FDL 298 nvl (função FDL) 208 O OfferROI (função FDL) 306 OfferROIAnnualized (função FDL) 307 operadores 193, 194, 196, 268 aritméticos 193 em FDL 193 em uma expressão regular FDL 268 lógicos 196 em FDL 196 relacionais 194 em FDL 194 operadores aritméticos 193 em FDL 193 operadores lógicos 196 em FDL 196 operadores relacionais 194 em FDL 194 or (operador FDL) 196 Portrait Miner 7.0A P palavras reservadas 147, 204 FDL 204 TML 147 parametrização da compilação de dados 28 usando qsbuild 28 percentage (função de agregação) 160, 173 em derivações 160 percentagerate (função de agregação) 160, 174 em derivações 160 Perfil e Auditoria 106 descompactar usando qshtmlunpack 106 pesquisa 316 de valores em uma tabela de referência 316 pesquisa de tabela de referência 316 plano de compilação 28 usando em qsbuild 28 pow (função FDL) 283 precedência de operadores 197 em FDL 197 precedência do operador 197 em FDL 197 PreDuringPost (binning) 336 PrePost (binning) 336 product, productnonnull (função FDL) 283 Q qsarchive (comando de compilação de dados) 95, 96 qsaudit (comando de compilação de dados) 100 qsbuild (comando de compilação de dados) 28 qscopy (comando de compilação de dados) 92 qsdbaccess (comando de compilação de dados) 32 qsdbcreatetable 35 qsdbinsert 37 qsdbupdate 38 qsdecisiontree (comando de compilação de dados) 123 qsderive (comando de compilação de dados) 63 qsdescribe (comando de compilação de dados) 104 qsdescribelicense (comando de compilação de dados) 112 qsdescribestat (comando de compilação de dados) 105 qsdtsnapshot (comando de compilação de dados) 107 qsexportflat 44 qsexportmetadata (data-build command) 77 qsexportstat (comando de compilação de dados) 49 qsgenfdd 40 qshtmlunpack (comando de compilação de dados) 106 qsimportdb 33 qsimportflat 42 qsimportfocus 51 qsimportmetadata (comando de compilação de dados) 78 qsimportstat (comando de compilação de dados) 48 qsinfo (comando de compilação de dados) 111 qsjoin (comando de compilação de dados) 84 qslink (comando de compilação de dados) 93 qslt (comando de compilação de dados) 135 qsmapgen (comando de compilação de dados) 140 qsmeasure (comando de compilação de dados) 66 qsmerge (comando de compilação de dados) 87 qsmove (comando de compilação de dados) 93 qsqmml2sas (comando de compilação de dados) 137 qsqmmledit (comando de compilação de dados) 132 qsqmmltosql (comando de compilação de dados) 137 qsqmmlview (comando de compilação de dados) 132 qsqsfmtosas (comando de compilação de dados) 138 qsremove (comando de compilação de dados) 94 qsruleminer (comando de compilação de dados) 127 qsscorecard (comando de compilação de dados) 124 qsscorecardwizard (comando de compilação de dados) 117 qsscsnapshot (comando de compilação de dados) 107 qsselect (comando de compilação de dados) 72 qssettings (comando de compilação de dados) 100 qssort (comando de compilação de dados) 62 qstrack (comando de compilação de dados) 70 qsupdate (comando de compilação de dados) 82 qsxt (comando de compilação de dados) 110 R raiz quadrada de um número 286 rankOrder (função FDL) 319 rankOrderApprox (função FDL) 319 rankOrderApproxMean (função FDL) 320 rankOrderMean (função FDL) 320 rastreamento da dependência em compilação de dados 28 usando qsbuild 28 rastrear alterações de estado 70 usando qstrack 70 referência inversa 268 em uma expressão regular FDL 268 regra 132 adicionar a um documento QMML usando qsqmmledit 132 regras de associação de compilação!usando qsruleminer 127 relação 184 em FDL 184 Guia de referência de comando de compilação de dados e do TML 373 remover um arquivo de focus 94 usando qsremove 94 renomear um arquivo de focus 93 usando qsmove 93 renomear um campo 74 usando qsrenamefields 74 replace (função FDL) 210 replaceall (função FDL) 271 replacefirst (função FDL) 272 resto 193 operador FDL 193 restringir um número a um intervalo 206 RetentionActionROI (função FDL) 308 RetentionActionROIAnnualized (função FDL) 310 RetentionOfferROI (função FDL) 311 RetentionOfferROIAnnualized (função FDL) 312 retorno de investimento 304, 305, 306, 307, 308, 310, 311, 312 usando ActionROI 304 usando ActionROIAnnualized 305 usando OfferROI 306 usando OfferROIAnnualized 307 usando RetentionActionROI 308 usando RetentionActionROIAnnualized 310 usando RetentionOfferROI 311 usando RetentionOfferROIAnnualized 312 right (função FDL) 256 rndBinomial (função FDL) 298 rndBool (função FDL) 299 rndExp (função FDL) 299 rndGamma (função FDL) 300 rndNormal (função FDL) 300 rndPoisson (função FDL) 301 rndUniform (função FDL) 302 round (função FDL) 284 rownum (função FDL) 321 S sampleEqualSize (função FDL) 291 sampleExactNumber (função FDL) 292 sampleExactPercentage (função FDL) 292 sampleStratified (função FDL) 293 scorecard 107, 124 compilando com o qsscorecard 124 criar um Modelo Instantâneo usando qsscsnapshot 107 second (função FDL) 247 segindex (função de agregação) 160, 175 em derivações 160 seleção 210 criar um campo de marcação 210 374 seleção de registros 72 usando qsselect 72 selecionar registros 72 usando qsselect 72 semente 298 para geração de números aleatórios em FDL 298 sobre 298 sgn (função FDL) 285 Sign (binning) 337 significance (função de agregação) 160, 175 em derivações 160 signo (sinal) de um número 285 sin (função FDL) 285 sobre diagramas de ferrovia 146 Sobre o Assistente do Scorecard 116 soundex (função FDL) 257 sqrt (função FDL) 286 startswith (função FDL) 258 stdev (função de agregação) 160, 176 em medições e derivações 160 string 216, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263 buscar uma string no final usando FDL 252 buscar uma string no início usando FDL 258 codificação soundex 257 comprimento 259 converter um campo para 216 extrair uma substring de uma posição inicial ou final usando FDL 261 extrair uma substring final usando FDL 256 extrair uma substring inicial usando FDL 254 extrair uma substring por posição e comprimento usando FDL 255 remover espaços em branco usandoFDL 263 substitute 260 testar uma substring usando FDL 253 strlen (função FDL) 259 strmember (função FDL) 259 substitute (função FDL) 260 substr (função FDL) 261 subtração 193 operador FDL 193 sum (função de agregação) 160, 177 em medições e derivações 160 sum, sumnonnull (funções FDL de multiargumento) 286 T tabela de banco de dados 33, 37, 38 atualizar dados usando qsdbupdate 38 importar usando qsimportdb 33 Portrait Miner 7.0A tabela de banco de dados (continuado) inserir dados usando qsdbinsert 37 Tabela de banco de dados 35 criar e usar qsdbcreatetable 35 tabela de referência cruzada 110 criar aplicando uma especificação usando qsxt 110 tan (função FDL) 287 tempo real 182 em FDL 182 teste de conjunto de associação 317 teste/treinamento 290, 294, 295 usando numericTestTrainSplit 290 usando numericTestTrainValidateSplit 290 usando testTrainSplit 294 usando testTrainValidateSplit 295 testTrainSplit (função FDL) 294 testTrainValidateSplit (função FDL) 295 text 256 extrair uma substring final usando FDL 256 texto 252, 253, 254, 255, 258, 261, 263 buscar uma string no final usando FDL 252, 258 extrair uma substring de uma posição inicial ou final usando FDL 261 extrair uma substring inicial usando FDL 254 extrair uma substring por posição e comprimento usando FDL 255 remover espaços em branco usandoFDL 263 testar uma substring usando FDL 253 tipo de compatibilidade 183 em FDL 183 tipo de número integer curto 182 em FDL 182 tipo de string 182 em FDL 182 tipo integer 182 em FDL 182 tipos de dado 182 no FDL 182 tipos de dados 182 em FDL 182 tipos de dados numéricos 182 em FDL 182 TML 146, 147, 160 funções de agregação 160 palavras reservadas 147 sobre 146 todate (função FDL) 214 today (função FDL) 247 tointeger (função FDL) 215 tolower (função FDL) 262 toreal (função FDL) 215 tostring (função FDL) 216 toupper (função FDL) 263 Transaction Measurement Language 146 consulte TML 146 trim (função FDL) 263 V valor absoluto de um número 276 valor literal 184 em FDL 184 valor nulo 182, 208, 209 no FDL 182 substituição usando ifnull ou nvl 208 teste 209 valores verdadeiros ou falsos 183 em FDL 183 no FDL 183 variance (função de agregação) 160, 177 em medições e derivações 160 variável de estado 188 em FDL 188 variável global 188 em FDL 188 variável local 188 em FDL 188 W WeekFrom (binning) 326 WeekMultipleFrom (binning) 326 WeekMultipleNumBins (binning) 327 WeekMultiplePrePost (binning) 328 WeekMultipleTo (binning) 329 WeekMultipleWidth (binning) 330 weekofyear (função FDL) 248 WeekPrePost (binning) 331 WeekRange (binning) 332 WeekTo (binning) 333 whitespace 263 remover usando FDL 263 X XML 135 formatar para legibilidade 135 XML no Portrait Miner 340 Y year (função FDL) 249 YearFrom (binning) 326 YearMultipleFrom (binning) 326 YearMultipleNumBins (binning) 327 Guia de referência de comando de compilação de dados e do TML 375 YearMultiplePrePost (binning) 328 YearMultipleTo (binning) 329 YearMultipleWidth (binning) 330 376 YearPrePost (binning) 331 YearRange (binning) 332 YearTo (binning) 333 Portrait Miner 7.0A