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:
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:
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:
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:
- Laden Sie die Datei als eine verbundene Datei mit der Analyse-App hoch.
- Verwenden Sie das Analysetag FILE zur Identifizierung der Datei(en).
- 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.