Website-Suche

Ein Überblick über die Programmiersprache GNU R


Einleitung

Das Ziel dieses Artikels ist es, einen Überblick über die Programmiersprache GNU R zu geben. Es beginnt eine Reihe von Artikeln, die sich mit der Programmierung mit R befassen. Ziel ist es, die elementaren Komponenten der Programmiersprache R übersichtlich und übersichtlich darzustellen. Es wurde entwickelt, um Ihnen zu helfen, R-Code zu verstehen und Ihren eigenen zu schreiben. Es wird davon ausgegangen, dass der Leser bereits über grundlegende Programmierkenntnisse in R verfügt. Wenn Sie mit keiner der R-Funktionen vertraut sind, wird empfohlen, zuerst ein kurzes GNU R-Tutorial zu grundlegenden Operationen, Funktionen und Datenstrukturen zu lesen.

Ausdrücke

Ein R-Ausdruck ist eine elementare Komponente von R-Code. Der Ausdruck in R kann wie folgt lauten:

  • Zuordnungsanweisung;
  • bedingte Anweisung;
  • Ausdruck.

Beispiele für R-Ausdrücke:

> y<-100
> if (1==1) 1 else 0
[1] 1
> 100/5
[1] 20

R-Ausdrücke werden aus Objekten oder Funktionen erstellt. Es ist üblich, sie durch einen Zeilenumbruch zu trennen, aber Sie können Ausdrücke auch mit Semikolons trennen, wie unten.

 > "LinuxConfig.org";sin(pi);5^7
[1] "LinuxConfig.org"
[1] 1.224647e-16
[1] 78125

Objekte

Ein R-Objekt kann als elementare Komponente ("Ding") der Programmiersprache R betrachtet werden. Die R-Objekte sind beispielsweise:

  • numerischer Vektor;
  • Zeichen-Vektor;
  • Liste;
  • Funktion.

Beispiele für Objekte in R:

> c(1,5,2,7,9,0)
[1] 1 5 2 7 9 0
> c("GNU R programming tutorial","LinuxCareer.com")
[1] "GNU R programming tutorial" "LinuxCareer.com"           
> list("GNU R programming tutoial",c(1:5),"this is also an object in R")
[[1]]
[1] "GNU R programming tutoial"

[[2]]
[1] 1 2 3 4 5

[[3]]
[1] "this is also an object in R"

> function(a,b) {a/b}
function(a,b) {a/b}

Symbole

Ein Symbol in R ist ein Variablenname. Wenn Sie also ein Objekt einem Variablennamen zuweisen, weisen Sie tatsächlich ein Objekt einem Symbol zu. Eine Umgebung in R ist also eine Menge solcher Symbole, die für einen bestimmten Zweck erstellt wurden.

Beispiel für Symbole in R:

> x<-3
> y<-"R tutorial"

Oben sind x und y Symbole.

Funktionen

Eine Funktion in R ist ein Objekt, das andere Objekte als Argumente akzeptiert und als Ergebnis ein Objekt zurückgibt. Wussten Sie, dass der Zuweisungsoperator '<-' eine Funktion in R ist? Du kannst, anstatt zu schreiben

> a<-1

Rufen Sie die Funktion '<-' mit den Argumenten 'a' und '1' auf, wie unten angegeben

> '<-'(a,1)

Einige Beispiele für Funktionen in R sind:

  • Operator für die Zuweisung "<-";
  • '+' Summierung;
  • "Wenn"-Erklärung;
  • '[' Vektor-Referenz.

Beispiele für Funktionen in R:

> '+'(1,1)
[1] 2
> 'if'(1>3,"one greater than three", "one less than three")
[1] "one less than three"
> '['(a,1)
[1] 1

Weitere Eigenschaften der Sprache R

Objekte sind in R unveränderlich

In R sind Objekte unveränderlich. Das bedeutet, dass R das Objekt kopiert und nicht nur den Verweis auf das Objekt. Betrachten Sie das folgende Beispiel. Wir definieren eine Funktion, die das i-te Element des Vektors 'x' auf 4 setzt, wie folgt

> f<-function(x,i){x[i]<-4}

Schauen wir uns an, was passiert, wenn wir einen Vektor 'w' definieren und ihn als Argument an die Funktion 'f' übergeben.

> w<-c(1,3,6,7)
> f(w,1)
> w
[1] 1 3 6 7

Was wir oben gerade beobachtet haben, ist, dass der Vektor 'w' kopiert wurde, als er an die Funktion übergeben wurde, so dass die Funktion diesen Vektor nicht verändert.

Alles in R ist ein Objekt

Alles in R ist ein Objekt. Objekte werden nicht nur zum Speichern von Daten definiert, wie es bei Vektoren, Listen oder anderen Datenstrukturen der Fall ist. Weitere Beispiele für Objekte in R sind Funktionen, Symbole oder R-Ausdrücke. Funktionsnamen in R sind z. B. Symbolobjekte, die auf Funktionsobjekte verweisen, wie unten angegeben

> functionname<-function(x,y) x+y
> functionname
function(x,y) x+y

Spezielle Werte in R

Es gibt eine Reihe von speziellen Werten, die in R verwendet werden. Diese sind:

  • NA, das für fehlende Werte verwendet wird, bedeutet "nicht verfügbar";
  • Inf und -Inf, was zu einer Berechnung führt, wenn die Ausgangszahl zu groß oder zu klein ist oder wenn sie durch Null dividiert;
  • NaN, was zu einer Berechnung führt, die nicht berechnet werden kann, wie z. B. die Division von Null durch Null, bedeutet "keine Zahl";
  • NULL, das häufig als Argument in Funktionen verwendet wird, bedeutet, dass diesem Argument kein Wert zugewiesen wurde.

Zwang

R überträgt häufig Werte von einem Typ in einen anderen. Wenn Sie z. B. eine Funktion mit einem Argument eines falschen Typs aufrufen, versucht R, dieses Argument in einen anderen Typ zu konvertieren, damit die Funktion funktionieren kann. Ein anderes Beispiel könnte sein, wenn wir einen Vektor mit numerischen Werten definieren, R ihm den Typ "Integer" zuweist, wie unten

> x<-c(1:10)
> typeof(x)
[1] "integer"

Wenn wir nun das vierte Element des Vektors 'x' in vier ändern, ändert R automatisch den Typ des Vektors in 'double', wie unten angegeben

> x[4]<-4.1
> typeof(x)
[1] "double"

Der R-Interpreter

Ein Interpreter ist ein Programm, das den geschriebenen Code ausführt. Es ist nicht erforderlich, R-Code in eine Objektsprache zu kompilieren, wie dies bei C, C++ oder Java der Fall ist. Das bedeutet, dass R eine interpretierte Sprache ist.

Der R-Interpreter wertet R-Ausdrücke in wenigen Schritten aus. Zunächst wird ein Ausdruck analysiert, der in eine geeignete funktionale Form umgewandelt wird. Rufen wir die Funktion quote() auf, um zu sehen, wie dies geschieht.

> typeof(quote(if(1>3) "one is greater than three" else "one is less than three"))
[1] "language"

Der obige R-Ausdruck gab ein "language"-Objekt zurück. Um zu sehen, wie R einen Ausdruck auswertet, erstellen wir einen Parse-Baum.

> as(quote(if(1>3) "one is greater than three" else "one is less than three"),"list")
[[1]]
`if`

[[2]]
1 > 3

[[3]]
[1] "one is greater than three"

[[4]]
[1] "one is less than three"

Wenden wir auch die Funktion typeof() auf die Elemente in einer solchen Liste an, die zeigt, wie der Ausdruck von R interpretiert wird.

> lapply(quote(if(1>3) "one is greater than three" else "one is less than three"),typeof)
[[1]]
[1] "symbol"

[[2]]
[1] "language"

[[3]]
[1] "character"

[[4]]
[1] "character"

Wie Sie sehen können, waren einige Teile der if-Anweisung nicht im analysierten Ausdruck enthalten. Das heißt, das else-Element. Darüber hinaus ist es interessant festzustellen, dass das erste Element in der Liste ein Symbol ist, das auf die Funktion if() zeigt. Obwohl sich die Syntax für die if-Anweisung von der des Funktionsaufrufs unterscheidet, übersetzt der R-Interpreter den Ausdruck in den Funktionsaufruf mit dem Namen der Funktion als erstes Argument und anderen Argumenten wie in der obigen Liste.

Schlussfolgerung

Dieser Artikel ist eine Einführung in die Programmiersprache R. In den kommenden Artikeln werden wir uns ausführlich mit den hier definierten Elementen der Sprache R befassen.

GNU R Tutorial-Reihe:

Teil I: GNU R Einführende Tutorials:

  1. Einführung in GNU R unter Linux
  2. Ausführen von GNU R auf einem Linux-Betriebssystem
  3. Ein kurzes GNU R-Tutorial zu grundlegenden Operationen, Funktionen und Datenstrukturen
  4. Ein kurzes GNU R-Tutorial zu statistischen Modellen und Grafiken
  5. Wie man Pakete in GNU R installiert und verwendet
  6. Erstellen von Basispaketen in GNU R

Teil II: GNU R Sprache:

  1. Ein Überblick über die Programmiersprache GNU R

Verwandte Artikel: