Download des Opensource-Projekts R ist relativ einfach. Man gehe auf http://cran.r-project.org/ und suche sich die geeignete Betriebssystemvariante aus. Möglich sind Windows, Linux und Mac. Die Linux-Variante kenne ich nicht, aber die Mac-Variante ist um Welten besser als die Windows-GUI-Variante. Aber ich fürchte, das ist Absicht, dass Windows so vernachlässigt wird. Na ja, zum Programmieren reichts aber und es gibt mittlerweile diverse Editoren (u.a. Emacs), die R Syntaxhiglighting beherrschen.
Ich entscheide mich für die
In die Konsole tippere ich also ein: '5+5' . Als Ergebnis bekomme ich '10' angezeigt. Das sollte laut Überschlag im Kopf auch in etwa richtig sein.
'5+5' ist ein Ausdruck, der von R ausgewertet wird, was soviel heißt wie: er rechnet 5+5 aus. Wie für einen Ausdruck typisch (sagt zumindest der obige Kursivtext), wird das Ergebnis in die Konsole geschrieben, die 10 verschwindet jedoch im Datennirwana, nachdem wir sie uns einmal angucken durften.
Ok, damit hat man jetzt einen einfachen Taschenrechner, aber das wäre den Aufwand nicht wert, ein Tutorial zu schreiben.
Was ist also der Charme von R? Na ja, bleibt ja nur noch die zweite Variante - die Zuweisung.
Bsp: x=5+5
Anmerkung: Kommandos in der Konsole bedürfen zu ihrer Ausführung des finalen Peitschenknalls, was in der R-Welt ein bzw. ist.
Hier sieht man jetzt (Wenn ich fies wäre, würde ich jetzt schreiben: "Wie für den aufmerksamen Leser klar ersichtlich ist..." ) eventuell, dass das Ergebnis NICHT mehr in der Konsole steht, sondern der Wert '10' in die Variable namens 'x' geschrieben wurde bzw. der Variable x zugewiesen wurde.
Gibt man im Folgeschritt 'x ' ein, wird der Wert angezeigt. Die '10' bleibt uns jetzt solange erhalten, wie der Wert in der Variable x nicht überschrieben wurde durch eine andere Zuweisung (z.B. x=5+6, danach hätte x den Wert 11). Hier empfehle ich, mit dem Tool einfach ein bisschen zu spielen, um ein Gefühl dafür zu bekommen. Übung ist alles, Intelligenz ist nichts oder nur nen Bruchteil zumindest.
Wie sind Variablen-, Funktionsnamen zu formulieren ?
R ist sensitiv für Groß- und Kleinschreibung. D.h. ein Symbol/Variable/Funktion namens 'A' ist nicht identisch mit 'a'. Zeichen, die verwendet werden dürfen sind betriebssystem- und landesspezifisch. Normalerweise sind aber sämtliche alphanumerischen Zeichen erlaubt, zusätzlich noch ‘.’ and ‘_’. Einschränkung: ein Name muss mit ‘.’ or einem Buchstaben beginnen, oder, falls er er mit ‘.’ beginnt, darf danach als 2. Zeichen keine Ziffer folgen.
Variablen
Der erfahrene MT-Programmierer stutzt sicherlich, wenn er sieht, wie ich x=5+5 schreibe. Jaaahaaa, so einfach kann es gehen ! *schaut triumphierend auf gequälte MQL-Programmierer herab* R ist intelligent genug, sich den richtigen Datentypen, der nach Anwendung des +-Operators auf 2 Zahlen entsteht rauszusuchen und x implizit zu deklarieren.
Durch Abfrage mittels class(x) bekommen wir mitgeteilt, dass x "numeric ist". Zu den Datentypen lasse ich mich später noch detaillierter aus. An der Stelle will ich dies nur als enorme Erleichterung erwähnen, dass man sich eigentlich sehr selten um sowas "Niederes" wie Datentypen kümmern muss.
Schreibe ich 'x=1', dann ist x vom Typ (bzw. der Klasse "numeric"), schreibe ich im Anschluss 'x="Hallo"', dann wird x wie durch Zauberhand zum String (bzw. "character"). Wenn ich geschickt programmiere, kann ich wahrscheinlich auch mit einer einzigen Variable hochkomplexe Programme schreiben, indem ich sie immer und immer wieder nachnutze. Das sollte man aber nicht machen, sonst trägt man schneller enggeschnittene weiße Jäckchen, die nicht mehr vorn zu öffnen sind als einem lieb ist.
Mehr als ein Befehl ?
Verschiedene Kommandos werden entweder durch ';' oder Zeilenumbruch voneinander getrennt. Letzeres passiert ja automatisch beim Enterdrücken in der Konsole. Wenn man aber Sequenzen von Ausdrücken in ner Datei speichert, sollte man drauf achten, dass entweder nur ein Befehl pro Zeile steht oder aber die Befehle innerhalb einer Zeile durch Semikolon getrennt werden.
Bsp. x=5+5;print(x);x=5+6;print(x)
Der letzte Befehl innerhalb einer Zeile darf ohne ';' auskommen, die Befehle müssen durch ';' getrennt werden.
Man kann prinzipiell komplette Programme in eine einzige Zeile pressen. Guter Programmierstil beinhaltet aber m.M.n. auch, dass man zumindest am rechten Bildschirmrand mal den einen oder anderen Zeilenumbruch einfügt.
Kommentarzeichen
Kommentarzeichen sind nicht die bei MT oder C/C++, Java und C# oder ähnlichem benutzten // oder /**/, sondern mal was ganz anderes - das oft vernachlässigte und völlig zu Unrecht total unterschätzte Rautezeichen '#', welches bedauerlicherweise aber nur für die eine Zeile gilt (ähnlich dem // bei MQL und ähnlichen Sprachen ).
Download und Installation
Download des Opensource-Projekts R ist relativ einfach. Man gehe auf http://cran.r-project.org/ und suche sich die geeignete Betriebssystemvariante aus. Möglich sind Windows, Linux und Mac. Die Linux-Variante kenne ich nicht, aber die Mac-Variante ist um Welten besser als die Windows-GUI-Variante. Aber ich fürchte, das ist Absicht, dass Windows so vernachlässigt wird. Na ja, zum Programmieren reichts aber und es gibt mittlerweile diverse Editoren (u.a. Emacs), die R Syntaxhiglighting beherrschen.
Ich entscheide mich für die
In die Konsole tippere ich also ein: '5+5'. Als Ergebnis bekomme ich '10' angezeigt. Das sollte laut Überschlag im Kopf auch in etwa richtig sein.
'5+5' ist ein Ausdruck, der von R ausgewertet wird, was soviel heißt wie: er rechnet 5+5 aus. Wie für einen Ausdruck typisch (sagt zumindest der obige Kursivtext), wird das Ergebnis in die Konsole geschrieben, die 10 verschwindet jedoch im Datennirwana, nachdem wir sie uns einmal angucken durften.
Ok, damit hat man jetzt einen einfachen Taschenrechner, aber das wäre den Aufwand nicht wert, ein Tutorial zu schreiben.
Was ist also der Charme von R? Na ja, bleibt ja nur noch die zweite Variante - die Zuweisung.
Bsp: x=5+5
Anmerkung: Kommandos in der Konsole bedürfen zu ihrer Ausführung des finalen Peitschenknalls, was in der R-Welt ein bzw. ist.
Hier sieht man jetzt (Wenn ich fies wäre, würde ich jetzt schreiben: "Wie für den aufmerksamen Leser klar ersichtlich ist..."
) eventuell, dass das Ergebnis NICHT mehr in der Konsole steht, sondern der Wert '10' in die Variable namens 'x' geschrieben wurde bzw. der Variable x zugewiesen wurde.
Gibt man im Folgeschritt 'x' ein, wird der Wert angezeigt. Die '10' bleibt uns jetzt solange erhalten, wie der Wert in der Variable x nicht überschrieben wurde durch eine andere Zuweisung (z.B. x=5+6, danach hätte x den Wert 11). Hier empfehle ich, mit dem Tool einfach ein bisschen zu spielen, um ein Gefühl dafür zu bekommen. Übung ist alles, Intelligenz ist nichts oder nur nen Bruchteil zumindest.
Wie sind Variablen-, Funktionsnamen zu formulieren ?
R ist sensitiv für Groß- und Kleinschreibung. D.h. ein Symbol/Variable/Funktion namens 'A' ist nicht identisch mit 'a'. Zeichen, die verwendet werden dürfen sind betriebssystem- und landesspezifisch. Normalerweise sind aber sämtliche alphanumerischen Zeichen erlaubt, zusätzlich noch ‘.’ and ‘_’. Einschränkung: ein Name muss mit ‘.’ or einem Buchstaben beginnen, oder, falls er er mit ‘.’ beginnt, darf danach als 2. Zeichen keine Ziffer folgen.
Variablen
Der erfahrene MT-Programmierer stutzt sicherlich, wenn er sieht, wie ich x=5+5 schreibe. Jaaahaaa, so einfach kann es gehen ! *schaut triumphierend auf gequälte MQL-Programmierer herab* R ist intelligent genug, sich den richtigen Datentypen, der nach Anwendung des +-Operators auf 2 Zahlen entsteht rauszusuchen und x implizit zu deklarieren.
Durch Abfrage mittels class(x) bekommen wir mitgeteilt, dass x "numeric ist". Zu den Datentypen lasse ich mich später noch detaillierter aus. An der Stelle will ich dies nur als enorme Erleichterung erwähnen, dass man sich eigentlich sehr selten um sowas "Niederes" wie Datentypen kümmern muss.
Schreibe ich 'x=1', dann ist x vom Typ (bzw. der Klasse "numeric"), schreibe ich im Anschluss 'x="Hallo"', dann wird x wie durch Zauberhand zum String (bzw. "character"). Wenn ich geschickt programmiere, kann ich wahrscheinlich auch mit einer einzigen Variable hochkomplexe Programme schreiben, indem ich sie immer und immer wieder nachnutze. Das sollte man aber nicht machen, sonst trägt man schneller enggeschnittene weiße Jäckchen, die nicht mehr vorn zu öffnen sind als einem lieb ist.
Mehr als ein Befehl ?
Verschiedene Kommandos werden entweder durch ';' oder Zeilenumbruch voneinander getrennt. Letzeres passiert ja automatisch beim Enterdrücken in der Konsole. Wenn man aber Sequenzen von Ausdrücken in ner Datei speichert, sollte man drauf achten, dass entweder nur ein Befehl pro Zeile steht oder aber die Befehle innerhalb einer Zeile durch Semikolon getrennt werden.
Bsp. x=5+5;print(x);x=5+6;print(x)
Der letzte Befehl innerhalb einer Zeile darf ohne ';' auskommen, die Befehle müssen durch ';' getrennt werden.
Man kann prinzipiell komplette Programme in eine einzige Zeile pressen. Guter Programmierstil beinhaltet aber m.M.n. auch, dass man zumindest am rechten Bildschirmrand mal den einen oder anderen Zeilenumbruch einfügt.
Kommentarzeichen
Kommentarzeichen sind nicht die bei MT oder C/C++, Java und C# oder ähnlichem benutzten // oder /**/, sondern mal was ganz anderes - das oft vernachlässigte und völlig zu Unrecht total unterschätzte
Rautezeichen '#', welches bedauerlicherweise aber nur für die eine Zeile gilt (ähnlich dem // bei MQL und ähnlichen Sprachen ).
Bsp.
#Hier steht ein Kommentar
#Hier steht ein weiterer.