Benutzerdefinierte Berechnung
Die benutzerdefinierte Berechnung ist ein leistungsstarkes Feature, das von RATH bereitgestellt wird und es Ihnen ermöglicht, Ihre Daten flexibel mit regulären Ausdrücken zu bearbeiten.
Benutzerdefinierte Berechnungskonsole
Nachdem Sie die Daten aus Ihrer ausgewählten Datenquelle importiert haben, können Sie auf die Schaltfläche Benutzerdefinierte Berechnung klicken, um die Konsole zu öffnen.
Die Benutzerdefinierte Berechnungskonsole verfügt über einen Editor, der sich auf der oberen linken Seite befindet, in dem Sie reguläre Ausdrücke eingeben können. RATH wird Vorschläge machen, während Sie eingeben, und Sie können den Vorschlag bestätigen, indem Sie auf die Aufforderung klicken oder die Tab-Taste drücken.
Wenn ein Ausdruck ungültig ist, wird in der unteren linken Ecke eine Fehlermeldung angezeigt. Wenn der Ausdruck gültig ist, wird die Vorschau des Ausgabe-Diagramms (Verteilungsdiagramme) der Spalte in Echtzeit auf der rechten Seite aktualisiert.
Ausdruckssyntax
Grundlagen
Felder
Benutzerdefinierte Berechnungsausdrücke verweisen auf ein Feld (sowohl das Original- als auch das erweiterte Feld) anhand einer Feld-ID. Im Editor können Sie den Namen des Feldes eingeben und nach einer intelligenten Abstimmung das entsprechende Feld auswählen.
Feldtypen
Der Datentyp des Felds, auf das sich der Benutzerdefinierte Berechnungsausdruck bezieht, umfasst die folgenden drei Typen:
set
-Typ: ein geordneter Zahlen-Typ, der eine Ordnungszahl darstellt und nicht an mathematischen Operationen beteiligt ist.group
-Typ: diskreter Zahlen-Typ, der an mathematischen Operationen beteiligt ist.collection
-Typ: Zeichenketten-Typ
Der Operator des Benutzerdefinierten Berechnungsausdrucks hängt eng mit dem Datentyp zusammen, und falls erforderlich, verwenden Sie den entsprechenden Operator, um die Spalte zu transformieren (dadurch wird eine neue Spalte erstellt, anstatt die ursprüngliche Spalte zu ändern).
Literale
Benutzerdefinierte Berechnungsausdrücke unterstützen teilweise JavaScript-Zahlen- und Zeichenkettenliterale.
Anweisung
Benutzerdefinierte Berechnungsausdrücke bestehen aus Operatoren, Feldverweisen, Literalen und Operatoren. Operatoren bilden den Kern der Funktionalität der Benutzerdefinierten Berechnung. Benutzerdefinierte Berechnungsausdrücke sollten verschachtelbare Operatoren verwenden und mindestens ein neues Feld generieren und exportieren. Der äußerste Benutzerdefinierte Berechnungsausdruck kann mehrere Berechnungsanweisungen mit Kommas (",") trennen, um schnell einige unabhängige Felder für den Berechnungsprozess zu erstellen. Semikola sollten nicht in Ausdrücken verwendet werden.
DateTime-Objekt
Ein DateTime-Objekt ist eine spezielle Art von Objekt, das vom $toDate
-Operator zurückgegeben wird.
Bei direkter Ausgabe wird eine Spalte mit einem Zeitstempel (einer Spalte vom Typ group
) generiert.
Es kann auch geschnitten werden, um neue einzelne oder mehrere Spalten zu konstruieren.
Die Schreibweise für das Schneiden lautet <DateTime-Objekt>.<Abmessungsbezeichnung>
.
Gültige Abmessungsbezeichnungen umfassen J
, M
, W
, T
, h
, m
, s
.
Operator
Operatoren sind Funktionen, die auf Feldern oder anderen Objekten operieren.
Operatorbezeichner beginnen mit dem Symbol $
.
Die Aufrufsyntax für einen Operator lautet <Operator>(<Parameter 1>, <Parameter 2>...)
.
Schlüsselwörter
Operator out
Für eine neue erweiterte Spalte, die durch eine Berechnung generiert wird, fügen Sie vor der Berechnungsanweisung das Schlüsselwort out
hinzu, um sie zu exportieren.
Der out
-Operator kann auf jeder Ebene einer verschachtelten Operation platziert werden.
**Benutzerdefinierte Berechnungsausdrücke müssen mindestens eine **out**
-Anweisung enthalten. **
Sie können nach dem Schlüsselwort out
ein Wort ohne Sonderzeichen hinzufügen, das den Namen des exportierten Feldes darstellt.
Insbesondere muss für das durch die vier Grundrechenarten generierte Feld sein Name explizit angegeben werden.
Beispiele:
Häufig verwendete Operatoren
Typkonvertierung
$set(group|collection) -> set
Konvertiert eine Spalte des Typs set
von einer Spalte eines nicht set
-Typs.
$group(set|collection) -> group
Transformiert eine Spalte des Typs group
von einer Spalte eines nicht group
-Typs. Nützlich bei mathematischen Operationen auf Feldern (Sie müssen sich sicher sein, dass die Operationen sinnvoll sind).
$nominal(set|group) -> collection
Transformiert eine Spalte des Typs collection
von einer Spalte eines nicht collection
-Typs.
Erzeugung geordneter Zahlen
$id() -> set
Generiert IDs, die bei 1 beginnen.
$order(set|group) -> set
Erzeugt die mathematische Reihenfolge (beginnend bei 1) aller Zeilen in einem Feld.
$dict(collection) -> set
Erzeugt die lexikographische Reihenfolge (beginnend bei 1) aller Zeilen in einem Feld.
Datenstandardisierung
$inset(group) -> group
Stellt ein Feld auf den Intervall -1 ~ 1 standardisiert ein.
$bound(group) -> group
Stellt ein Feld auf den Intervall 0 ~ 1 standardisiert ein.
$normalize(group) -> group
Normalisiert ein Feld mit Hilfe der Z-Score.
Nichtlineare Transformation
$log(group) -> group
, $log(group, JS.number) -> group
Logarithmische Abbildung, die Basis kann angegeben werden und ist standardmäßig der natürliche Logarithmus.
$log2(group) -> group
$log10(group) -> group
$log1p(group) -> group
Entspricht $log(group + 1)
.
$sigmoid(group) -> group
$ReLU(group) -> group
Datenbereinigung
$isNaN(set|group) -> collection
Gibt "1" zurück, wenn die Zeile in einem Feld NaN ist, oder "0", wenn nicht.
$isZero(set|group) -> collection
Gibt "1" zurück, wenn die Zeile in einem bestimmten Feld 0 ist, oder "0", wenn nicht.
$zeroFill(group) -> group
Ordnet Ausreißer (±Infinity | NaN) in der Zeile eines Feldes der 0 zu.
$meanFill(group) -> group
Ordnet Ausreißer (±Infinity | NaN) in der Zeile eines Feldes dem Durchschnitt der nicht-Ausreißer zu.
$nearestClip(group, JS.number, JS.number) -> group
Gibt einen Bereich an, und der Wert der Zeile in einem bestimmten Feld, der diesen Bereich überschreitet, wird auf den nächstgelegenen Grenzwert als Ausreißer abgebildet.
$meanClip(group, JS.number, JS.number) -> group
Bitte stellen Sie die deutsche Übersetzung dieser Markdown-Datei zur Verfügung, ohne den eingebetteten Code zu übersetzen: Geben Sie einen Bereich an, und der Wert der Zeile in einem Feld, das außerhalb dieses Bereichs liegt, wird auf den Durchschnittswert der Nicht-Ausreißerwerte als Ausreißer abgebildet.
$boxClip(group) -> group
Verwenden Sie die Boxplot-Statistik, um Ausreißer in einem Feld zu markieren und durch NaN zu ersetzen.
Zeichenketten-Manipulation
$concat(collection, ...collection) -> collection
, $concat(JS.string, collection, ...collection) -> collection
Verkettet den Inhalt mehrerer Zeichenketten-Spalten nacheinander mit einem Trennzeichen (standardmäßig ,
) als neue Spalte.
Datum und Uhrzeit
$toDate(group|set|collection)
Dieser Operator führt eine besondere Art von DateTime-Objekt ein und gibt eine Instanz dieses Objekts zurück.
Beste Praktiken
Normalisierungstransformation
Nichtlineare Abbildung
In diesem Fall versuchen wir, die Spalte casual
aus der Bike Sharing Demo Database mit einer nichtlinearen Abbildung zu transformieren.
Abrufen von DateTime-Informationen
Wir können die DateTime-Informationen aus der Bike Sharing Demo Database abrufen, wobei _c_4
das Jahr und _c_1
der Monat ist.
Anschließend können wir den Parameter Wochentag
berechnen.