Computación personalizada
La computación personalizada es una poderosa función proporcionada por RATH que le permite editar sus datos de manera flexible con expresiones regulares.
Consola de computación personalizada
Después de importar los datos desde su fuente de datos seleccionada, puede hacer clic en el botón de Computación Personalizada para abrir la consola.
La Consola de Computación Personalizada tiene un editor ubicado en el lado superior izquierdo, donde puede ingresar expresiones regulares. RATH le sugerirá sugerencias a medida que ingrese, puede confirmar la sugerencia haciendo clic en la sugerencia o presionando la tecla Tab.
Si una expresión es inválida, se mostrará un mensaje de error en la esquina inferior izquierda. Si la expresión es válida, la vista previa de salida (Graficos de Distribución) de la columna se actualizará en tiempo real a la derecha.
Sintaxis de expresión
Fundamentos
Campos
Las expresiones de Computación Personalizada se refieren a un campo (original y extendido) por ID de campo. En el editor, puede ingresar el nombre del campo, después de la coincidencia inteligente con el campo correspondiente, seleccione la autocompletado.
Tipos de campo
El tipo de datos del campo en la expresión de computación personalizada, el tipo original incluye los siguientes tres tipos:
- tipo "set": un tipo numérico ordenado, que representa un número ordinal, no involucrado en operaciones matemáticas
- tipo "group": tipo numérico discreto, involucrado en operaciones matemáticas
- tipo "collection": tipo de cadena
El operador de la expresión de Computación Personalizada está fuertemente asociado con el tipo de datos, y si es necesario, use el operador correspondiente para transformar la columna (esto construirá una nueva columna en lugar de cambiar la columna original).
Literales
Las expresiones de Computación Personalizada admiten parcialmente literales de números y cadenas de JavaScript.
Declaración
Las expresiones de Computación Personalizada están compuestas por operadores, referencias de campo, literales y operadores. Los operadores son el núcleo de la funcionalidad de Computación Personalizada. Las expresiones de Computación Personalizada deben usar operadores anidables y generar y exportar al menos un nuevo campo. La expresión de Computación Personalizada más externa puede dividir varias declaraciones de cálculo con comas (",") para crear rápidamente algunos campos independientes para el proceso de cálculo. No debe usar puntos y comas en las expresiones.
Objeto DateTime
Un objeto DateTime es un tipo especial de objeto devuelto por el operador $ toDate
.
Una exportación directa generará un campo con una marca de tiempo (columna del tipo group
).
También se puede "cortar" para construir nuevas columnas simples o múltiples.
La sintaxis de corte es <objeto DateTime>.<etiqueta dimensional>
.
Las notaciones de dimensión válidas incluyen Y
, M
, W
, D
, h
, m
, s
.
Operador
Los operadores son funciones que operan en campos u otros objetos.
Los identificadores de operador comienzan con un símbolo $
.
La sintaxis de llamada para un operador es <operador>(<parámetro 1>, <parámetro 2> ...)
.
Palabras clave
Operador out
Para una nueva columna extendida generada por un cálculo, agregue la palabra clave out
antes de la declaración de cálculo para exportarla.
El operador out
se puede colocar en cualquier nivel de una operación anidada.
**Las expresiones de Computación Personalizada deben contener al menos una declaración de out
. **
Puede agregar una palabra sin caracteres especiales después de la palabra clave out
como el nombre del exportado.Traduzca el siguiente mdx con frontmatter al español: campo ted.
En particular, para el campo generado por las cuatro operaciones aritméticas, su nombre debe ser declarado explícitamente.
Ejemplos:
Operadores comunes
Conversión de tipo
$set(group|collection) -> set
Convierte una columna del tipo conjunto de una columna de tipo no conjunto.
$group(set|collection) -> group
Transforma una columna del tipo grupo de una columna del tipo no grupo. Útil cuando se realizan operaciones matemáticas en campos (debe asegurarse que las operaciones tengan sentido).
$nominal(set|group) -> collection
Transforma una columna del tipo colección de una columna del tipo no colección.
Generación de números ordinales
$id() -> set
Genera IDs a partir de 1.
$order(set|group) -> set
Genera el orden matemático (a partir de 1) de todas las filas en un campo.
$dict(collection) -> set
Genera el orden lexicográfico (a partir de 1) de todas las filas en un campo.
Estandarización de datos
$inset(group) -> group
Estandariza un campo en el intervalo -1 ~ 1.
$bound(group) -> group
Estandariza un campo en el intervalo 0 ~ 1.
$normalize(group) -> group
Normaliza un campo utilizando el puntaje z.
Transformación no lineal
$log(group) -> group
, $log(group, JS.number) -> group
Mapeo logarítmico, la base puede ser proporcionada, y el valor predeterminado es el logaritmo natural.
$log2(group) -> group
$log10(group) -> group
$log1p(group) -> group
Equivalente a $log(group + 1)
.
$sigmoid(group) -> group
$ReLU(group) -> group
Limpieza de datos
$isNaN(set|group) -> collection
Devuelve "1" si la fila es NaN en un campo, o "0" si no.
$isZero(set|group) -> collection
Devuelve "1" si la línea es 0 en un cierto campo, o "0" si no.
$zeroFill(group) -> group
Mapea los valores atípicos (±Infinity | NaN) de la fila en un campo a 0.
$meanFill(group) -> group
Mapea los valores atípicos (±Infinity|NaN) de esta fila en un campo a la media de los valores no atípicos.
$nearestClip(group, JS.number, JS.number) -> group
Proporcione un rango, y el valor de la fila en un cierto campo que excede este rango es mapeado al valor límite más cercano como valor atípico.
$meanClip(group, JS.number, JS.number) -> group
Proporcione un rango, y el valor de la fila en un campo fuera de este rango se asigna al valor promedio de los valores no atípicos como valores atípicos.
$boxClip(group) -> group
Utiliza la estadística de diagrama de caja para marcar valores atípicos en un campo y reemplazarlos con NaN.
Manipulación de cadenas
$concat(collection, ...collection) -> collection
, $concat(JS.string, collection, ...collection) -> collection
Concatena el contenido de varias columnas de cadena secuencialmente con un delimitador (,
por defecto) como una nueva columna.
Fecha y hora
$toDate(group|set|collection)
Este operador introduce un tipo especial de objeto DateTime y devuelve una instancia de ese objeto.
Mejores prácticas
Transformación de normalización
Mapeo no lineal
En este caso, intentamos transformar la columna casual
de la Bike Sharing Demo Database con mapeo no lineal.
Recuperar información de DateTime
Podemos recuperar la información de DateTime de la Bike Sharing Demo Database, donde _c_4
es el año y _c_1
es el mes.
A continuación, podemos calcular el parámetro día de la semana
.