RCOMMAND-Befehl

Übergibt eine Analytics-Tabelle als einen Datenrahmen an ein externes R-Skript und erstellt mit der Ausgabe des externen R-Skripts eine neue Tabelle innerhalb des Analytics-Projekts.

Syntax

RCOMMAND FIELDS Feld <...n> RSCRIPT Pfad_zum_Skript TO Tabellenname <IF Test> <WHILE Test> <FIRST Bereich|NEXT Bereich> <KEEPTITLE> <SEPARATOR Zeichen> <QUALIFIER Zeichen> <OPEN>

Parameter

Name Beschreibung
FIELDS Feldname <...n>

Die Felder aus der Analytics-Quelltabelle oder die Ausdrücke, die in den Datenrahmen für das R-Skript aufgenommen werden sollen.

In Abhängigkeit von Ihrer verwendeten Analytics-Edition können Fehler auftreten, wenn Sie Daten mit Sonderzeichen an R schicken:

  • Nicht-Unicode „\“
  • Unicode „ÿ“ oder „Ŝ“
  • Beide Linienzeichen wie Blöcke, schwarze Quadrate und vertikale unterbrochene Striche.

Hinweis

Daten mit unterschiedlichen Sprachzeichen werden ebenfalls nicht unterstützt, wie beispielsweise eine Tabelle, die sowohl japanische als auch chinesische Zeichen enthält.

RSCRIPT Pfad_zum_Skript

Der vollständige oder relative Pfad zum R-Skript innerhalb des Dateisystems. Schließen Sie Pfad_zum_Skript in Anführungszeichen ein.

TO Tabellenname

Der Ort, an den die Ergebnisse des Befehls gesendet werden sollen:

  • Tabellenname Speichert die Ergebnisse in einer Analytics-Tabelle.

    Geben Sie Tabellenname als in Anführungszeichen gesetzte Zeichenfolge mit der Dateierweiterung „.FIL“ an. Beispiel: TO "Ausgabe.FIL"

    Standardmäßig wird die Tabellendatendatei (.FIL) im Ordner mit dem Analytics-Projekt gespeichert.

    Verwenden Sie entweder einen absoluten oder relativen Dateipfad, um die Datendatei in einen anderen bestehenden Ordner zu speichern:

    • TO "C:\Ausgabe.FIL"
    • TO "Ergebnisse\Ausgabe.FIL"

    Hinweis

    Tabellennamen sind auf 64 alphanumerische Zeichen beschränkt, was die .FIL-Dateierweiterung nicht einbezieht. Der Name kann den Unterstrich beinhalten ( _ ), aber keine anderen Sonderzeichen oder Leerzeichen. Er kann nicht mit einer Ziffer beginnen.

Die Ausgabetabelle wird aus dem Datenrahmen oder der Matrix, den/die das R-Skript zurückgibt, erstellt.

IF Test

Optional

Eine Bedingung, die erfüllt werden muss, damit der aktuelle Datensatz verarbeitet wird. Der Datenrahmen, den das R-Skript zurückgibt, enthält nur Datensätze, welche die Bedingung erfüllen.
WHILE Test

Optional

Ein bedingter Ausdruck, der wahr sein muss, damit ein Datensatz verarbeitet wird. Der Befehl wird ausgeführt, bis die Bedingung falsch ist oder das Tabellenende erreicht wurde.

Hinweis

Wenn Sie WHILE zusammen mit FIRST oder NEXT verwenden, endet die Datensatzverarbeitung, sobald eine Grenze erreicht wird.

FIRST Bereich | NEXT Bereich

Optional

Die Anzahl der zu verarbeitenden Datensätze:

  • FIRST Verarbeitung beim ersten Datensatz beginnen, bis die angegebene Datensatzanzahl erreicht wird
  • NEXT Verarbeitung beim aktuell ausgewählten Datensatz beginnen, bis die angegebene Datensatzanzahl erreicht wird

Verwenden Sie Bereich, um die Anzahl der zu verarbeitenden Datensätze anzugeben.

Wenn Sie FIRST und NEXT nicht angeben, werden standardmäßig alle Datensätze verarbeitet.

Achtung

In der gegenwärtigen Version gibt es ein bekanntes Problem mit NEXT bei der Verwendung des Befehls RCOMMAND. Vermeiden Sie die Verwendung dieser Option, weil die Datensatzreferenz unabhängig von der tatsächlichen Auswahl eines Datensatzes auf den ersten Datensatz zurückgesetzt werden kann.

KEEPTITLE

Optional

Behandeln Sie die erste Datenzeile als Feldnamen und nicht als Daten. Falls dies ausgelassen wird, werden generische Feldnamen verwendet.

Diese Option ist notwendig, falls Sie Daten unter den Spaltentiteln innerhalb des R-Skripts abrufen möchten.

SEPARATOR Zeichen

Optional

Das Zeichen, das als Trennzeichen zwischen Feldern verwendet werden soll. Der Zeichen muss als in Anführungszeichen gesetzte Zeichenfolge angegeben werden.

Das Standardzeichen ist ein Komma.

Hinweis

Vermeiden Sie die Verwendung von Zeichen, die in den Eingabefeldern vorkommen. Wenn das SEPARATOR-Zeichen in den Eingabedaten erscheint, kann sich dies auf die Ergebnisse auswirken.

QUALIFIER Zeichen

Optional

Das Zeichen, das als Textkennzeichner zum Umschließen und Identifizieren von Feldwerten verwendet wird. Der Zeichen muss als in Anführungszeichen gesetzte Zeichenfolge angegeben werden.

Das Standardzeichen ist ein doppeltes Anführungszeichen.

Hinweis

Vermeiden Sie die Verwendung von Zeichen, die in den Eingabefeldern vorkommen. Wenn das QUALIFIER-Zeichen in den Eingabedaten erscheint, kann sich dies auf die Ergebnisse auswirken.

OPEN

Optional

Öffnet die durch den Befehl erstellte Tabelle, nachdem der Befehl ausgeführt wird. Nur gültig, wenn der Befehl eine Ausgabetabelle erstellt.

Beispiele

R zum Laufen bringen (Hallo Welt)

Sie erstellen ein Hallo-Welt-Skript, um Ihre Verbindung zwischen Analytics und R zu testen:

Analytics-Befehl

RCOMMAND FIELDS "Hallo"; " Welt!" TO "R_Ergebnis" RSCRIPT "C:\Skripts\R_Skripts\Analyse.r"

R-Skript (Analyse.r)

srcTable<-acl.readData()

# Tabelle zur Rückgabe an ACL erstellen
output<-data.frame(
  c(srcTable[1,1]),
  c(srcTable[1,2])
)

# Spaltennamen hinzufügen und Tabelle an ACL zurückgeben
colnames(output) <- c("Gruß","Betreff")
acl.output<-output

Auf Felddaten mit Zeilen- und Spaltenkoordinaten zugreifen

Sie senden einige Rechnungsfelder an ein R-Skript, um eine Analyse außerhalb von Analytics durchzuführen:

Analytics-Befehl

RCOMMAND FIELDS Abteilungscode Rechnungsbetrag Rechnungsdatum Rechnungsnummer Lieferantennummer TO "R_Ergebnis" RSCRIPT "C:\Skripts\R_Skripts\Analyse.r"

R-Skript (Analyse.r)

# Ruft Rechnungsnummer aus zweiter Zeile des Datenrahmens in R-Skript ab
srcTable<-acl.readData()
srcTable[2,4]

Auf Felddaten mit Spaltennamen zugreifen

Sie senden einige Rechnungsfelder an ein R-Skript, um eine Analyse außerhalb von Analytics durchzuführen. Sie verwenden die Option KEEPTITLE, damit Spalten in R mit ihrem Namen referenziert werden können:

Analytics-Befehl

RCOMMAND FIELDS Abteilungscode Rechnungsbetrag Rechnungsnummer TO "r_Ergebnis" RSCRIPT "C:\Skripts\R_Skripts\Analyse.r" KEEPTITLE

R-Skript (Analyse.r)

# Ruft Rechnungsnummer aus zweiter Zeile des Datenrahmens in R-Skript ab
srcTable<-acl.readData()
srcTable["2","Invoice_Number"]

Rechnungsdaten mit einem Wert von über 1000,00 an R-Skript senden

Sie senden einige Rechnungsfelder an ein R-Skript, um eine Analyse außerhalb von Analytics durchzuführen. Sie verwenden IF, um die Anzahl der an R geschickten Datensätze zu begrenzen. Nur Datensätze mit einem Rechnungsbetrag von über 1000,00 werden versendet:

Analytics-Befehl

RCOMMAND FIELDS Abteilungscode Rechnungsbetrag Rechnungsnummer TO "r_Ergebnis" IF Rechnungsbetrag > 1000,00 RSCRIPT "C:\Skripts\R_Skripts\Analyse.r" KEEPTITLE

R-Skript (Analyse.r)

# Ruft Rechnungsnummer aus zweiter Zeile des Datenrahmens in R-Skript ab
srcTable<-acl.readData()
srcTable["2","Invoice_Number"]

Rechnungsdatensätze senden und multiplizierte Rechnungsbeträge zurückerhalten

Sie senden einige Rechnungsfelder an ein R-Skript, um eine Analyse außerhalb von Analytics durchzuführen. Das R-Skript führt für jede Zelle in der benannten Spalte eine einzelne Aktion durch:

Analytics-Befehl

RCOMMAND FIELDS Abteilungscode Rechnungsbetrag Rechnungsnummer TO "r_Ergebnis" RSCRIPT "C:\Skripts\R_Skripts\Analyse.r" KEEPTITLE

R-Skript (Analyse.r)

# Gibt Segment der ACL-Tabelle mit doppeltem Wert zurück
srcTable<-acl.readData()
acl.output<-srcTable["Rechnungsbetrag"] * 2

Bemerkungen

Hinweis

Weitere Informationen über die Funktion dieses Befehls finden Sie in Hilfe für Analytics.

Analytics-Daten im R-Skript referenzieren

Die Analytics-Tabelle wird als ein R-Datenrahmen an das Skript übergeben. Datenrahmen sind Tabellendatenobjekte, die Spalten mit unterschiedlichen Datenmodi (bzw. Datentypen) enthalten können.

Um in einem R-Skript mit einem durch Analytics erstellten Datenrahmen arbeiten zu können, rufen Sie die Funktion acl.readData() auf und speichern den zurückgegebenen Datenrahmen in einer Variable:

# Speichert die Analytics-Tabelle in einem Datenrahmen namens „meineTabelle“, der im gesamten Skript referenziert werden kann
meineTabelle<-acl.readData()

Um im Datenrahmen Daten aus einer Zelle abzurufen, können Sie wie folgt vorgehen:

  • Zeilen- und Spaltenkoordinaten verwenden:

    # Ruft den Wert in der ersten Zeile und zweiten Spalte des Datenrahmens ab
    meineTabelle[1,2]

    Hinweis

    Die Koordinaten basieren auf der Reihenfolge der Felder im Befehl, nicht auf dem Tabellenlayout oder der Ansicht, die momentan geöffnet ist.

  • Zeilen- und Spaltennamen verwenden:

    # Ruft den Wert in der ersten Zeile und der Spalte „meinSpaltentitel” des Datenrahmens ab
    meineTabelle["1","meinSpaltentitel"]

    Sie müssen die KEEPTITLE-Option des Befehls festlegen, um Spaltennamen zu verwenden.

    Reihen werden als „1”, „2”, „3” bezeichnet und entsprechend hochgezählt. Sie können auch eine Kombination aus Namen und Koordinaten verwenden.

Daten wieder an Analytics zurückgeben

Um einen Datenrahmen oder eine Matrix wieder an Analytics zurückzugeben und eine neue Tabelle zu erstellen, verwenden Sie die folgende Syntax:

# Gibt Datenrahmen „meineNeueTabelle“ an Analytics zurück und erstellt eine neue Tabelle 
acl.output<-meineNeueTabelle

Hinweis

Sie müssen einen Datenrahmen oder eine Matrix an Analytics zurückgeben, sobald das R-Skript abgeschlossen wird. Stellen Sie sicher, dass die Spalten des Datenrahmens oder der Matrix nur atomare Werte und keine Listen, Matrizen, Arrays oder nicht atomare Objekte enthalten. Falls die Werte nicht in Analytics-Datentypen umgewandelt werden können, schlägt der Befehl fehl.

Zuordnungen von Datentypen

Analytics-Datentypen werden durch einen Umwandlungsprozess zwischen dem Analytics-Projekt und dem R-Skript in R-Datentypen umgewandelt:

Analytics-Datentyp R-Datentyp(en)
Logisch Logisch
Numerisch Numerisch
Zeichen Zeichen
Datumzeit Datum, POSIXct, POSIXlt

Performance und Dateigrößenbeschränkungen

Die Zeit zur Ausführung Ihres R-Skripts und zur Verarbeitung der zurückgegebenen Daten nimmt zu, falls die Eingabedaten einen Umfang von 1 GB überschreiten. R unterstützt keine Eingabedaten von 2 GB oder darüber.

Auch die Anzahl der an R geschickten Datensätze wirkt sich auf die Performance aus. Wenn zwei Tabellen dieselbe Dateigröße, aber eine unterschiedliche Datensatzanzahl aufweisen, wird die Tabelle mit weniger Datensätzen schneller verarbeitet.

Zeichendaten mit mehreren Bytes handhaben

Wenn Sie Daten an R in einem Multi-Byte-Zeichensatz, wie z.B. Chinesisch, senden, müssen Sie in Ihrem R-Skript das entsprechende Systemgebietsschema setzen. Um erfolgreich eine Tabelle mit Multi-Byte-Daten an R zu senden, muss die erste Zeile des R-Skripts die folgende Funktion enthalten:

# Beispiel, in dem als Gebietsschema Chinesisch festgelegt wird
Sys.setlocale("LC_ALL","Chinese")

Weitere Informationen zu Sys.setlocale( ) finden Sie in der Dokumentation zu R.

R-Protokolldatei

Analytics protokolliert Meldungen der R-Sprache im Projektordner innerhalb einer Datei aclrlang.log. Verwenden Sie diese Protokolldatei, um R-Fehler zu suchen und zu beheben.

Tipp

Die Protokolldatei ist im Ergebnisordner der Analysejobs von Analytics Exchange verfügbar.

R-Skripts auf AX Server ausführen

Wenn Sie eine Analyse-App schreiben, die auf AX Server laufen soll, und mit externen R-Skripts arbeiten möchten:

  1. Laden Sie die Datei als eine verbundene Datei mit der Analyse-App hoch.
  2. Verwenden Sie das Analysetag FILE zur Identifizierung der Datei(en).
  3. Verweisen Sie auf die Dateien über den relativen Pfad ./Dateiname.r.

Hinweis

Die Verwendung einer verbundenen Datei stellt sicher, dass der TomEE-Anwendungsserver ausreichende Berechtigungen für den Zugriff auf die Datei hat, sobald R mit Analytics Exchange ausgeführt wird.