EvaluateInR: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
PRanz (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 4: | Zeile 4: | ||
Mit der Funktion ''EvaluateInR'' ist es möglich ''R''-Befehle auszuführen. Das Argument der Funktion ist eine [[Zeichenkette]], welche in ''R'' direkt ausgeführt wird. | Mit der Funktion ''EvaluateInR'' ist es möglich ''R''-Befehle auszuführen. Das Argument der Funktion ist eine [[Zeichenkette]], welche in ''R'' direkt ausgeführt wird. | ||
In der [[Zeichenkette]] können FillInvariablen (pos), sowie Aufgabenvariablen (var) auftauchen. Diese Variablen werden dann automatisch in die ''R''-Sprache übersetzt. | In der [[Zeichenkette]] können FillInvariablen (pos), sowie Aufgabenvariablen (var) auftauchen. Diese Variablen werden dann automatisch in die ''R''-Sprache übersetzt. | ||
'''Strings müssen mit einfachen Anführungszeichen <code>'</code> umgeben werden, damit sie korrekt umgeformt werden.''' Bsp.: <code>evaluateInR("ifelse([var=test]=='Test', 0, 1)")</code> | |||
===Syntax=== | ===Syntax=== | ||
Zeile 40: | Zeile 42: | ||
| [[Matrix]] | | [[Matrix]] | ||
| Eine 2x3-Matrix mit folgenden Einträgen: [1, 3, 5; 2, 4, 6] | | Eine 2x3-Matrix mit folgenden Einträgen: [1, 3, 5; 2, 4, 6] | ||
|- | |||
| 'test' | |||
| String | |||
| Eine Zeichenkette muss mit <code>'</code> umgeben werden | |||
|} | |} | ||
Zeile 62: | Zeile 68: | ||
Die Funktion <code>evaluateInR</code> erlaubt kein Verschachteln von Funktionen. Es ist nur '''ein''' String als Argument erlaubt. | Die Funktion <code>evaluateInR</code> erlaubt kein Verschachteln von Funktionen. Es ist nur '''ein''' String als Argument erlaubt. | ||
Zum Konkatenieren von R-Ausdrücken und Variablen, ist es erlaubt diese direkt im String anzugeben. | Zum Konkatenieren von R-Ausdrücken und Variablen, ist es erlaubt diese direkt im String anzugeben. |
Version vom 30. November 2023, 15:56 Uhr
Zugehörige Evaluatoren
- MathEvaluator
Beschreibung
Mit der Funktion EvaluateInR ist es möglich R-Befehle auszuführen. Das Argument der Funktion ist eine Zeichenkette, welche in R direkt ausgeführt wird. In der Zeichenkette können FillInvariablen (pos), sowie Aufgabenvariablen (var) auftauchen. Diese Variablen werden dann automatisch in die R-Sprache übersetzt.
Strings müssen mit einfachen Anführungszeichen '
umgeben werden, damit sie korrekt umgeformt werden. Bsp.: evaluateInR("ifelse([var=test]=='Test', 0, 1)")
Syntax
Eine Variable Test kann dann folgendermaßen beschrieben werden:
<option name="Test" type="Typ" cas="Evaluator" value="evaluateInR('argument')" />
Parameter
- Typ - Entspricht dem Typen der Variable.
- argument - R-Befehl
Befehlsreferenz für R
In folgender Tabelle sind einige Beispiele, wie R verwendet werden kann. Die Variablen die damit gesetzt werden, können ebenfalls wieder in R angewandt werden oder auch für andere Zwecke im Evaluator verwendet werden.
argument | Typ | Beschreibung |
list(1, 2.34) | List | Eine Liste mit 2 Einträgen |
list(1, ...., n) | List | Eine Liste mit n Einträgen |
c(1,2,3,4,5,6) | Vektor | Eine Vektor mit der Länge 6 |
matrix(c(1,2,3,4,5,6),2,3) | Matrix | Eine 2x3-Matrix mit folgenden Einträgen: [1, 3, 5; 2, 4, 6] |
'test' | String | Eine Zeichenkette muss mit ' umgeben werden
|
Eine Ausführliche Dokumentation findet man hier: [1]
Beispiele
Eine 3x3-Matrix als Variable mit Namen A erstellt man durch den folgenden Befehl:
<option name="A" type="matrix" cas="Evaluator" value="evaluateInR('matrix(c(1,2,3,4,5,6,7,8,9),3,3)')" />
In dem folgenden Beispiel wird eine Matrixvariable "A" erzeugt und anschließend der Rang von "A" in der Variable "rang" gespeichert.
<variables>
<option name="A" type="matrix" cas="Evaluator" value="evaluateInR('matrix(c(1,2,3,4,5,6,7,8,9),3,3)')" />
<option name="rang" type="vector" cas="Evaluator" value="evaluateInR('rank([var=A])')" />
</variables>
Änderungen in JACK3
Die folgenden Änderungen beziehen sich nur auf JACK3.
Die Funktion evaluateInR
erlaubt kein Verschachteln von Funktionen. Es ist nur ein String als Argument erlaubt.
Zum Konkatenieren von R-Ausdrücken und Variablen, ist es erlaubt diese direkt im String anzugeben.
Hinweis
Bei Rechenausdrücken mit Gleitkommazahlen können Rundungsfehler auftreten. Falls solche Fehler auftreten, kann die Berechnung alternativ mithilfe von EvaluateInSage durchgeführt werden. Rundungsfehler können auch mit round() verbessert werden. Zudem ist darauf zu achten, dass Gleitkommazahlen ggf. auf eine sinnvolle Nachkommastelle gerundet werden.