Cálculo Personalizado
O cálculo personalizado é um recurso poderoso fornecido pelo RATH, permitindo que você edite seus dados com expressões regulares de maneira flexível.
Console de Cálculo Personalizado
Após importar os dados de sua fonte de dados selecionada, você pode clicar no botão de Cálculo Personalizado para abrir o console.
O Console de Cálculo Personalizado possui um editor localizado no canto superior esquerdo, onde você pode inserir expressões regulares. O RATH irá sugerir sugestões à medida que você digita, e você pode confirmar a sugestão clicando na sugestão ou pressionando a tecla Tab.
Se uma expressão for inválida, uma mensagem de erro será exibida no canto inferior esquerdo. Se a expressão for válida, a visualização de saída (Gráficos de Distribuição) da coluna será atualizada em tempo real à direita.
Sintaxe da Expressão
Básico
Campos
As expressões de Cálculo Personalizado se referem a um campo (original e expandido) pelo ID do campo. No editor, você pode inserir o nome do campo, após correspondência inteligente para o campo correspondente, selecione a conclusão automática.
Tipos de campo
O tipo de dados do campo em questão na expressão de Cálculo Personalizado, o tipo original inclui os seguintes três tipos:
- Tipo
set
: um tipo de número ordenado, representando um número ordinal, não envolvido em operações matemáticas - Tipo
group
: tipo discreto de número, envolvido em operações matemáticas - Tipo
collection
: tipo string
O operador da expressão de Cálculo Personalizado está fortemente associado ao tipo de dados e, se necessário, use o operador correspondente para transformar a coluna (isso construirá uma nova coluna em vez de alterar a coluna original).
Literais
As expressões de Cálculo Personalizado oferecem suporte parcial a literais de número e string do JavaScript.
Declaração
As expressões de Cálculo Personalizado são compostas por operadores, referências de campo, literais e operadores. Os operadores são o cerne da funcionalidade do Cálculo Personalizado. As expressões de Cálculo Personalizado devem usar operadores aninháveis e gerar e exportar pelo menos um novo campo. A expressão de Cálculo Personalizado mais externa pode dividir várias declarações de cálculo com vírgulas (",") para criar rapidamente alguns campos independentes para o processo de cálculo. Você não deve usar ponto e vírgula em expressões.
Objeto Datetime
Um objeto Datetime é um tipo especial de objeto retornado pelo operador $toDate
.
Uma exportação direta gerará um campo com carimbo de data/hora (coluna do tipo group
).
Também pode ser cortado para construir novas colunas únicas ou múltiplas.
A sintaxe de corte é <objeto datetime>.<tag da dimensão>
.
As notações de dimensão válidas incluem Y
, M
, W
, D
, h
, m
, s
.
Operador
Os operadores são funções que operam em campos ou outros objetos.
Os identificadores de operador começam com o símbolo $
.
A sintaxe de chamada para um operador é <operador>(<parâmetro 1>, <parâmetro 2>...)
.
Palavras-chave
Operador out
Para uma nova coluna expandida gerada por um cálculo, adicione a palavra-chave out
antes da declaração de cálculo para exportá-la.
O operador out
pode ser colocado em qualquer nível de uma operação aninhada.
**As expressões de Cálculo Personalizado devem conter pelo menos uma declaração out
. **
Você pode adicionar uma palavra sem caracteres especiais após a palavra-chave out
como o nome da exportação.Traduza o seguinte mdx com frontmatter para o Português Brasileiro: campo ted.
Em particular, para o campo gerado pelas quatro operações aritméticas, seu nome deve ser explicitamente declarado.
Exemplos:
Operadores comuns
Conversão de tipo
$set(group|collection) -> set
Converte uma coluna do tipo conjunto (set) a partir de uma coluna de tipo não-conjunto (set).
$group(set|collection) -> group
Transforma uma coluna do tipo grupo (group) a partir de uma coluna de tipo não-grupo (group). Útil quando se realizam operações matemáticas em campos (é necessário estar certo de que as operações fazem sentido).
$nominal(set|group) -> collection
Transforma uma coluna do tipo coleção (collection) a partir de uma coluna de tipo não-coleção (collection).
Geração de número ordinal
$id() -> set
Gera IDs a partir de 1.
$order(set|group) -> set
Gera ordem matemática (iniciando em 1) de todas as linhas de um campo.
$dict(collection) -> set
Gera ordem lexicográfica (iniciando em 1) de todas as linhas de um campo.
Padronização de dados
$inset(group) -> group
Padroniza um campo para um intervalo de -1 a 1.
$bound(group) -> group
Padroniza um campo para um intervalo de 0 a 1.
$normalize(group) -> group
Normaliza um campo usando o escore Z.
Transformação não-linear
$log(group) -> group
, $log(group, JS.number) -> group
Mapeamento logarítmico, a base pode ser fornecida e o padrão é o logaritmo natural.
$log2(group) -> group
$log10(group) -> group
$log1p(group) -> group
Equivalente a $log(group + 1)
.
$sigmoid(group) -> group
$ReLU(group) -> group
Limpeza de dados
$isNaN(set|group) -> collection
Retorna "1" se uma linha é NaN em um campo ou "0" se não.
$isZero(set|group) -> collection
Retorna "1" se a linha é 0 em um determinado campo, ou "0" se não.
$zeroFill(group) -> group
Mapear outliers (±Infinity | NaN) da linha em um campo para 0.
$meanFill(group) -> group
Mapear outliers (±Infinity|NaN) dessa linha em um determinado campo para a média dos valores não-outliers.
$nearestClip(group, JS.number, JS.number) -> group
Fornece um intervalo, e o valor da linha em um determinado campo que excede esse intervalo é mapeado para o valor limite mais próximo como um outlier.
$meanClip(group, JS.number, JS.number) -> group
Fornece um intervalo, e o valor da linha em um campo que está fora desse intervalo é mapeado para o valor médio dos valores não-outlier como outliers.
$boxClip(group) -> group
Usar estatísticas de boxplot para marcar outliers em um campo e substituí-los por NaN.
Manipulação de string
$concat(collection, ...collection) -> collection
, $concat(JS.string, collection, ...collection) -> collection
Concatena o conteúdo de várias colunas de string sequencialmente com um delimitador (,
por padrão) como uma nova coluna.
Data e hora
$toDate(group|set|collection)
Este operador introduz um tipo especial de DateTime e retorna uma instância desse objeto.
Melhores práticas
Transformação de normalização
Mapeamento não-linear
Neste caso, tentamos transformar a coluna casual
do Bike Sharing Demo Database com mapeamento não linear.
Recuperar informações de data e hora
Podemos recuperar informações de data e hora do Bike Sharing Demo Database, onde_c_4
é o ano e _c_1
é o mês.
Em seguida, podemos calcular o parâmetro weekday
.