ein Portrait von mir

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

Zusammenfassung S, S-Plus und R:
Elementare mathematische und statistische Funktionen

Elementare arithmetische und logische Operatoren
Elementare mathematische Funktionen
Elementare Statistik
Modellierung
Statistische Verteilungen
Statistiche Manipulationen
Matrixoperationen
Programmierung
Diverses


Elementare Operatoren

Arithmetische Operatoren

+ Addition
- Subtraktion
* Multiplikation
/ Division
^ Exponentiation
%/% ganzzahlige Division
%% Rest bei Division (modulus)

Logische Operatoren

== gleich
!= ungleich
< kleiner als
<= kleiner oder gleich
> groesser
>= groesser oder gleich
! Negation
& und
| oder

Elementare mathematische Funktionen

sqrt(...) Quadratwurzel
abs(...) Absolutbetrag
sign(...) Vorzeichen
log(...) natürlicher Logarithmus zur Basis e
log10(...) Logarithmus zur Basis 10
sin(...), cos(...), tan(...), cot(...) trigonometrische Funktionen
asin(...), acos(...), atan(...), acot(...) Umkehrfunktionen der trigonometrischen Funktionen
round(...,digits=n) Runden auf n Stellen
trunc(...) / floor(...) Abrunden (auf nächst kleinere ganze Zahl)
ceiling(...) Aufrunden (auf nächst größere ganze Zahl)

Elementare Statistik

Statistische Funktionen

(als Argument ist möglich: ein Vektor, seit Version 3 keine Dataframes mehr)

mean arithemtisches Mittel
sd Standardabweichung (nur R)
median Median
mad mittlere absolute Abweichung
var bei Vektor: Varianz
bei Matrix: Kovarianzmatrix
cov Kovarianzmatrix
cor Korrelationsmatrix
min Minimum aller Werte (Ergebnis: Skalar)
max Maximum aller Werte (Ergebnis: Skalar)
which.min Index für den (zuerst) das Min. (oder F) angenommen wird
which.max Index für den (zuerst) das Max. (oder T) angenommen wird
pmin elementweises Minimum mehrerer Vektoren (Ergebnis: Vektor)
pmax elementweises Maximum mehrerer Vektoren (Ergebnis: Vektor)
range Vektor mit Minimum und Maximum
sum Summe
cumsum kumulative Summe
prod Produkt
quantile (..., probs=...) Quantile: 0, 0.25, 0.5, 0.75, 1.0
fivenum Tukey's five number summary
skewness Schiefe (u.a. Paket moments)
kurtosis Exzess (u.a. Paket moments)

univariate Statistiken einer Datenmatrix

summary (für beliebige Objekte)

apply(Datenmatrix, 2, Funktion) (für Dataframes und Matrizen)

tapply(Dataframe, Faktor, Funktion) (bei DataFrames für die Levels eines Faktors)

colMeans(Dataframe)         
rowMeans(Dataframe)
colSums(Dataframe)
rowSums(Dataframe)
spalten-/variablenweise Mittelwerte
zeilenweise Mittelwerte
spalten-/variablenweise Summen
zeilenweise Summen

im Paket "timeSeries":

colSDs(Dataframe)
colStdevs(Dataframe)
colVars(Dataframe)
colSkewness(Dataframe)
colKurtosis(Dataframe)
colMins(Dataframe)
colMaxs(Dataframe)
colQuantiles(Dataframe,prob=Quantil)
spalten/variablenweise Standardabweichungen
spalten/variablenweise Standardabweichungen
spalten/variablenweise Varianzen
spalten/variablenweise Schiefe
spalten/variablenweiser Exzess
spalten/variablenweise Minima
spalten/variablenweise Maxima
spalten/variablenweise Quantile mit 0<Quantil<1

im Paket "fBasics":

rowSDs(Dataframe)
rowStdevs(Dataframe)
rowVars(Dataframe)
rowSkewness(Dataframe)
rowKurtosis(Dataframe)
rowMins(Dataframe)
rowMaxs(Dataframe)
rowQuantiles(Dataframe,prob=Quantil)
zeilenweise Standardabweichungen
zeilenweise Standardabweichungen
zeilenweise Varianzen
zeilenweise Schiefe
zeilenweiser Exzess
zeilenweise Minima
zeilenweise Maxima
zeilenweise Quantile mit 0<Quantil<1

Tabellen

table(Vektor1, Vektor2,...) (absolute Häufigkeiten)

Modellierung

y ~ Funktion(x1, x2, ...)
x1:x2
(Interaktion x1 mit x2)
x1*x2 (Haupteffekte und Interaktion x1 mit x2)
(x1 + x2 + ...)^2 (alle Haupteffekte und 2er Interaktionen)
x1/x2 (x1 eingebettet in x2)
poly(x,n) (Polynom von x vom Grade n)

Statistische Verteilungen

Die Funktionen setzen sich jeweils zusammen aus derm Funktionstyp

und dem Verteilungsnamen

...norm (x, mean=..., sd=...) Normal
...chisq (x, df) Chi2
...t (x, df) Student t
...f (x, df1, df2) F
...unif (x, min=..., max=...) Gleich
...pois (x, lambda) Poisson
...beta (x, shape1, shape2) Beta
...binom (x, size, prob) Binomial
...nbinom (x, size, prob) negative Binomial
...exp (x, rate=...) Expontential
...cauchy (x, location=..., scale=...) Cauchy
...gamma (x, shape=..., scale=...) Gamma
...geom (x, prob=...) geometrische
...hyper (x, m=..., n=..., k=...) hypergeometrische
...lnorm (x, meanlog=..., sdlog=...) logarithmische Normal
...logis (x, location=..., scale=...) logistische
...weibull (x, shape=..., scale=...) Weibull
...wilcox (x, m=..., n=...) Wilcoxon rank sum statistic
...signrank (x, n=...) Wilcoxon Signed Rank statistic

Weitere Verteilungen:

ptukey(q, nmeans, df, nranges)
qtukey(p, nmeans, df, nranges)
Studentized Range statistic
qbirthday(prob=... , classes= ..., coincident=...)
pbirthday(n=..., classes=, coincident=...)
Birthday problem

Ausführliche Übersicht bei Cran

Startwert für die Erzeugung von Zufallszahlenfolgen:
set.seed(n)

Statistiche Manipulationen

Standardisieren eines Vektors oder Matrix (z-Scores)
(alle Elemente müssen numerisch sein)
scale(Matrix)
scale(Matrix, center=Vektor, scale=Vektor)

Wandlung in Rangzahlen
rank(x)
rank(x, na.last="keep") wenn NAs erhalten bleiben sollen

Sortieren
sort(x) Vektor x aufsteigend sortieren
sort(x, decreasing=T) absteigend
order(x) Vektor von Indizes zum aufsteigenden Sortieren von x
order(x, decreasing=T) Vektor von Indizes zum absteigenden Sortieren
Dataframe[order(Var1, Var2,...), ] Dataframe aufsteigend nach Var1, Var2,. sortieren
Dataframe[order(-Var1,...), ] Dataframe absteigend nach Var1,. sortieren
arrange(Dataframe, Var1, Var2,...) Sortieren eines Dataframes nach Var1, Var2 (aufsteigend) bzw. desc(Var1), desc(Var2) (absteigend) (Paket "plyr")

Aggregieren einer Datenmatrix bzgl. einer (kategorialen) Variablen
aggregate(x, by=list(Variablen), FUN=Funktion)

Matrixoperationen

Matrix1%*%Matrix2 Matrix-Multiplikation
Vektor1%*%Vektor2 Inneres Produkt
Matrix1%o%Matrix2 Äußeres Produkt
Matrix1%x%Matrix2 Kronecker Produkt
crossprod(Matrix) Kreuzproduktmarix
t(x) Transponierte Matrix
solve(Matrix) Inverse Matrix
ginv(x) Moore-Penrose inverse Matrix (Paket MASS)
svd.inverse(x) Inverse Matrix mittels svd (Paket matrixcalc)
diag(x) Diagonale einer Matrix
diag(n) Einheitsmatrix der Ordnung n
col(x) Matrix aus den Spaltennummern einer Matrix
row(x) Matrix aus den Zeilennummern einer Matrix
solve(Matrix, Vektor) Lösen eines linearen Gleichungssystems
eigen(x)$values
eigen(x)$vectors
Eigenwerte und
Eigenvektoren einer Matrix
prod(eigen(x)$values)
determinant(x)
Determinante einer Matrix
chol(Matrix) Choleski-Zerlegung einer symmetrischen Matrix
qr(x) QR-Zerlegung einer Matrix
qr(x)$rank Rang einer Matrix
sum(diag(x)) Spur einer Matrix
svd(x) singular value decomposotion
vecnorm(Vektor,p=...) p-Norm eines Vektors (R: Paket: splus2R)

Anwendung von Funktionen auf Matrizen

dim ist hier die Dimension, auf die die Funktion angewandt werden soll, z.B. 2 (spaltenweise) und 1 (zeilenweise)
... sind optionale Parameter für die angegebene Funktion

x <- apply(Matrix, dim, Funktion) Anwendung einer Vektoroperation auf Zeilen (dim=1) oder Spalten (dim=2) einer Matrix
x <- lapply(Liste, Funktion,...) Anwendung einer Funktion auf die Elemente jedes Listenelements (Ergebnistyp "List")
x <- sapply(Liste, Funktion,...) Anwendung einer Funktion auf die Elemente jedes Listenelements (Ergebnistyp "Vektor/Matrix", falls möglich)
x <- tapply(Vektor, list(Faktoren), Funktion) Anwendung einer Funktion auf Vektor für die Kombinationen der Faktoren (Ergebnis: Vektor/Matrix)
x <- ave(Vektor, Faktor1, Faktor2,.., FUN=Funktion) Anwendung einer Funktion auf Vektor für die Kombinationen der Faktoren (Ergebnis: Variable passend zu Vektor)
x <- by(Vektor, Faktoren, Funktion) Anwendung einer Funktion auf Vektor für die Kombinationen der Faktoren (mit anderer Ausgabe als tapply)

x <- sweep(Matrix, dim, Vektor) Subtrahieren eines Vektors von den Zeilen (dim=1) oder Spalten (dim=2) einer Matrix

Programmierung

If-Anweisungen
if (logischer Ausdruck)
    {Anweisungn}
else if (logischer Ausdruck)
    {Anweisungen}
else
    {Anweisungen}


ifelse (logischer Ausdruck, Wert falls wahr, Wert falls falsch)

switch (Ausdruck, Anweisung1, Anweisung2,...)

(je nach ganzzahligem Wert 1, 2, ... von Ausdruck wird die 1., 2.,... Anweisung ausgeführt, bzw.
je nach character-Wert a, b,... von Ausdruck wird die Anweisung ausgeführt, die eine Zuweisung für a, b,.. enthält)

Schleifen
for (Parameter in Parameterbereich) {Anweisungen}
while (logischer Ausdruck) {Anweisungen}

repeat Anweisungen
break (Abbruch der Schleife)
next (Sprung zum Schleifenbeginn)

Prüfung einer Bedingung für alle Elemente einer Matrix
all(x) Abfrage, ob ein logischer Vektor nur T enthält, bzw.
all(logischer Ausdruck)
any(x) Abfrage, ob ein logischer Vektor mindestens ein T enthält, bzw.
any(logischer Ausdruck)
which(logischer Ausdruck) Indizes, für die die Bedingung erfüllt ist
which.max(Vektor) kleinster Index, für den das Maximum angenommen wird (Vektor numerisch oder logisch 0/1)
which.min(Vektor) kleinster Index, für den das Minimum angenommen wird (Vektor numerisch oder logisch 0/1)
x %in% y logischer Vektor: Abfrage, ob Werte der Vektors x im Vektor y enthalten sind

Abfrage auf fehlende Werte
which.na(x) Vektor mit Indizes, in denen der Vektor fehlende Werte hat (nur SPlus)
is.na(x) logischer Vektor mit T, in denen der Vektor fehlende Werte hat

Diverses

Ausführung einer Anweisung, wobei im Fall eines Fehlers die Ausführung fortgesetzt wird, z.B. innerhalb einer Funktion,
bzw. Anweisung2 wird nur ausgeführt, wenn Anweisung1 keinen Fehler verursacht.
try(Anweisung,silent=T/F)
try({Anweisung1;Anweisung2;...},silent=T/F)

Gruppenweise Analysen bei DataFrames für die Levels eines Faktors
tapply(Dataframe, Faktor, Funktion) für einfache Funktionen ohne Parameter
by(Dataframe, Faktor, Funktion, Parameter) für beliebige Funktionen mit Parameter

stop("Message") Beendigung der Ausführung einer Funktion

Zeitverschiebung
lag(Zeitreihe, Anzahl) Verschiebung einer Zeitreihe um eine Anzahl von Zeiteinheiten


Haiko Lüpsen
Letzte Änderung: 23.11.2021