ein Portrait von mir

Dipl.Math. Dr. Haiko Lüpsen
Statistik & Kurse

Kursunterlagen zum Kurs: R und S
Syntax-Regeln

Anweisungssyntax

Aufbau einer Anweisung:
Zuweisung des Ergebnisses eines Ausdrucks einer Variablen über "<-", "->" oder "="
Anzeige des Ergebnisses eines Ausdrucks (wenn "<-", "->" oder "=" fehlen)

Ausdruck:
arithmetischer oder logischer Ausdruck und/oder Funktionsaufrufe

Anweisungs-Fortsetzung:
Ist eine Anweisung syntaktisch nicht korrekt abgeschlossen, erscheint automatisch das Prompt "+" als Hinweis für eine Fortsetzungszeile
typische Ursachen: schließende Klammer ) ] } oder " vergessen

Mehrere Anweisungen:
; als Trennzeichen von Anweisungen innerhalb derselben Zeile
{...;...;...} zum Zusammenfassen von Anweisungen zu einem Block
erforderlich z.B. bei eigenen Funktionen, within(..) oder if (..) ... else ...

Kommentare:
# leitet einen Kommentar ein, der sich bis zum Zeilenende erstreckt
(kann am Zeilenanfang, z.B. zur Deaktivierung einer Anweisung, stehen,
oder hinter einer Anweisung zur Abgrenzung eines erläuternden Kommentars)

Abbruch der Eingabe einer Anweisung:
<ctrl>c (Unix)
<esc> (Windows)

Namen (von Variablen, Funktionen, Objekten) können bestehen aus:
Buchstaben (ohne länderspezifische wie z.B. Umlaute)
Ziffern
. oder _
(sollten mit Buchstaben oder "." beginnen,
Groß/Kleinschreibung ist relevant.)

Funktionsaufruf:
name (...) wobei ( ) immer vorhanden sein müssen (z.B. q( ) )
Parameterübergabe entweder über Parameterposition oder Parameternamen,
z.B. mean(Alter, 0.10) oder mean(trim=0.10, x=Alter)

Kommando-History
Über Cursor-Tasten können vorherige Kommandos zurückgeladen und editiert werden
.Rhistory (unsichtbar) enthält alle in der Sitzung eingegebenen Anweisungen
(im selben Verzeichnis wie .RData)

Datentypen (Werte)

(bei der Eingabe bzw. Ausgabe)

numeric
  integer
  real
  double
Zahlen (mit Dezimalpunkt)
(intern kein Unterschied des Datentyps)
logical T oder TRUE bzw. F oder FALSE
(keine kleinen Buchstaben verwenden!)
character Zeichen: "..."
(z.B. "Max Mustermann" )
complex +/-a +/-bi
(z.B. -2 + 1.3i )
date Datum in der Form Jahr-Monat-Tag
fehlend (missing value) NA
nicht berechenbar NaN (not a number)
(nur R, nur bei Ausgabe)
unendlich inf
(nur bei Ausgabe)
leer (kein Wert) NULL
feste Konstanten pi (3.14...)
Datei-Pfade "..."
mit / oder \\ (anstatt \) zur Trennung von Verzeichnissen
   

Die wichtigsten Objekttypen für Daten:

Typ Erzeugung Referenzierung
Vektoren
(einschließlich
nicht indizierter
Variablen)
c(...,...,...) x[...]
Matrizen matrix (Vektor, ncol=..., nrow=...) x[..,..]
Arrays array (Vektor, c(..,..,..)) x[..,..,..]
Zeitreihen ts (Vektor, frequency=..) x[...]
Faktoren factor (Vektor, levels=c(...), labels=c(..)) x[...]
Listen
(verschiedene Datentypen möglich)
list (Name=...,Name=...,...) Komponenten:
  x[[...]],
  x[[Name]] oder
  x$Name
Elemente:
  x[[...]][..],
  x[[Name]][..]
  x$Name[..]
Dataframes
(Datenmatrizen)
data.frame(Vektor1, Vektor2,...) wie Listen
     
     

Indizierung von Vektoren, Matrizen, Arrays und DataFrames:

Form Funktion
x[..,..] einzelnes Element
x[i,..] i-te Zeile
x[..,j] j-te Spalte
x[-i,..] ohne i-te Zeile
x[..,-j] ohne j-te Spalte
x[c(..,..,..),..] ausgewählte Zeilen (analog Spalten)
x[-c(..,..,..),..] ausgenommen ausgewählte Zeilen
(analog Spalten)
x[Bedingung,..] Zeilen, die eine logische Bedingung erfüllen
(z.B. x[x[ ,2]<30, 1]
x[x$Alter<20,])
DataFrames:
  x[..,"Name"]
  x$Name
Variable Name einer Datenmatrix
Hinweis:
In diesem Zusammenhang ist ein attach(x), with(x,...) oder within(x,...)
hilfreich, da dann das Präfix x$ entfallen kann
is.na(x)
(Ergebnis: logischer Vektor)
Prüfung auf fehlende Werte
(z.B. x[is.na(x)] <- 0)
any(logischer Vektor) Prüfung, ob ein Element die Bedingung erfüllt
all(logischer Vektor) Prüfung, ob alle Elemente die Bedingung erfüllen

Haiko Lüpsen
Letzte Änderung: 17.10.2016