Calcul personnalisé
Le calcul personnalisé est une fonctionnalité puissante fournie par RATH qui vous permet de modifier vos données de manière flexible à l'aide d'expressions régulières.
Console de calcul personnalisé
Après avoir importé les données de votre source de données sélectionnée, vous pouvez cliquer sur le bouton Calcul personnalisé pour ouvrir la console.
La console de calcul personnalisé possède un éditeur situé dans le coin supérieur gauche, où vous pouvez entrer des expressions régulières. RATH vous proposera des suggestions alors que vous saisissez, vous pouvez confirmer la suggestion en cliquant sur la proposition ou en appuyant sur la touche Tab.
Si une expression est invalide, un message d'erreur sera affiché dans le coin inférieur gauche. Si l'expression est valide, l'aperçu de sortie (graphiques de distribution) de la colonne sera mis à jour en temps réel à droite.
Syntaxe des expressions
Bases
Champs
Les expressions de calcul personnalisé font référence à un champ (à la fois d'origine et étendu) par son identifiant de champ. Dans l'éditeur, vous pouvez saisir le nom du champ, après correspondance intelligente avec le champ correspondant, sélectionnez l'autocomplétion.
Types de champ
Le type de données du champ concerné dans l'expression de calcul personnalisé, le type d'origine comprend les trois types suivants :
- Type "set" : un type nombre ordonné, représentant un nombre ordinal, non impliqué dans les opérations mathématiques.
- Type "group" : un type nombre discret, impliqué dans les opérations mathématiques.
- Type "collection" : un type chaîne de caractères.
L'opérateur de l'expression de calcul personnalisé est fortement associé au type de données, et si nécessaire, utilisez l'opérateur correspondant pour transformer la colonne (cela construira une nouvelle colonne au lieu de modifier la colonne d'origine).
Littéraux
Les expressions de calcul personnalisé prennent en charge partiellement les littéraux de nombres et de chaînes de caractères en JavaScript.
Instruction
Les expressions de calcul personnalisé sont composées d'opérateurs, de références de champ, de littéraux et d'opérateurs. Les opérateurs sont au cœur de la fonctionnalité de calcul personnalisé. Les expressions de calcul personnalisé doivent utiliser des opérateurs imbriquables, et générer et exporter au moins un nouveau champ. L'expression de calcul personnalisé la plus externe peut séparer plusieurs instructions de calcul avec des virgules (","), afin de créer rapidement certains champs indépendants pour le processus de calcul. Vous ne devez pas utiliser de point-virgule dans les expressions.
Objet DateTime
Un objet DateTime est un type d'objet spécial renvoyé par l'opérateur $toDate
.
Une exportation directe générera un champ avec un horodatage (colonne de type "group").
Il peut également être tranché pour construire de nouvelles colonnes simple ou multiples.
La syntaxe de découpage est <objet DateTime>.<balise de dimension>
.
Les notations de dimension valides incluent Y
, M
, W
, D
, h
, m
, s
.
Opérateur
Les opérateurs sont des fonctions qui agissent sur des champs ou d'autres objets.
Les identifiants d'opérateur commencent par le symbole $
.
La syntaxe d'appel pour un opérateur est <opérateur>(<paramètre 1>, <paramètre 2>...)
.
Mots-clés
Opérateur out
Pour une nouvelle colonne étendue générée par un calcul, ajoutez le mot-clé out
avant l'instruction de calcul pour l'exporter.
L'opérateur out
peut être placé à n'importe quel niveau d'une opération imbriquée.
**Les expressions de calcul personnalisé doivent contenir au moins une instruction **out**
. **
Vous pouvez ajouter un mot sans caractères spéciaux après le mot-clé out
comme nom du champ exporté.
En particulier, pour le champ généré par les quatre opérations arithmétiques, son nom doit être explicitement déclaré.
Exemples :
Opérateurs courants
Conversion de type
$set(group|collection) -> set
Convertit une colonne du type "set" à partir d'une colonne de type non "set".
$group(set|collection) -> group
Transforme une colonne du type "group" à partir d'une colonne de type non "group". Utile lors de l'exécution d'opérations mathématiques sur des champs (vous devez être sûr que les opérations ont du sens).
$nominal(set|group) -> collection
Transforme une colonne du type "collection" à partir d'une colonne de type non "collection".
Génération de nombres ordinaux
$id() -> set
Génère des identifiants à partir de 1.
$order(set|group) -> set
Génère l'ordre mathématique (à partir de 1) de toutes les lignes sur un champ.
$dict(collection) -> set
Génère l'ordre lexicographique (à partir de 1) de toutes les lignes sur un champ.
Normalisation des données
$inset(group) -> group
Normalise un champ à l'intervalle -1 ~ 1.
$bound(group) -> group
Normalise un champ à l'intervalle 0 ~ 1.
$normalize(group) -> group
Normalise un champ en utilisant le score Z.
Transformation non linéaire
$log(group) -> group
, $log(group, JS.number) -> group
Mapping logarithmique, la base peut être spécifiée, la valeur par défaut est le logarithme naturel.
$log2(group) -> group
$log10(group) -> group
$log1p(group) -> group
Équivalent à $log(group + 1)
.
$sigmoid(group) -> group
$ReLU(group) -> group
Nettoyage des données
$isNaN(set|group) -> collection
Renvoie "1" si la ligne est NaN sur un champ, ou "0" sinon.
$isZero(set|group) -> collection
Renvoie "1" si la ligne est 0 sur un champ donné, ou "0" sinon.
$zeroFill(group) -> group
Mappe les valeurs aberrantes (±Infini | NaN) de la ligne sur un champ à 0.
$meanFill(group) -> group
Mappe les valeurs aberrantes (±Infini|NaN) de cette ligne sur un champ à la moyenne des valeurs non aberrantes.
$nearestClip(group, JS.number, JS.number) -> group
Fournit une plage, et la valeur de la ligne sur un certain champ qui dépasse cette plage est mappée à la valeur limite la plus proche en tant que valeur aberrante.
$meanClip(group, JS.number, JS.number) -> group
Fournir une plage, et la valeur de la ligne sur un champ qui est en dehors de cette plage est mappée sur la valeur moyenne des valeurs non exceptionnelles en tant qu'exceptions.
$boxClip(group) -> group
Utilisez les statistiques du diagramme en boîte pour marquer les valeurs aberrantes dans un champ et les remplacer par NaN.
Manipulation de chaîne de caractères
$concat(collection, ...collection) -> collection
, $concat(JS.string, collection, ...collection) -> collection
Concaténez le contenu de plusieurs colonnes de chaînes de caractères séquentiellement avec un délimiteur (,
par défaut) en tant que nouvelle colonne.
DateTime
$toDate(group|set|collection)
Cet opérateur introduit un type spécial d'objet DateTime et renvoie une instance de cet objet.
Meilleures pratiques
Transformation de normalisation
Mappage non linéaire
Dans ce cas, nous tentons de transformer la colonne casual
de la base de données de démonstration Bike Sharing avec un mappage non linéaire.
Récupérer les informations DateTime
Nous pouvons récupérer les informations DateTime de la base de données de démonstration Bike Sharing, où _c_4
est l'année et _c_1
est le mois.
Ensuite, nous pouvons calculer le paramètre weekday
.