Sie sind auf Seite 1von 8

Formelsammlung R

Allgemein

setwd("path/file") # Arbeitsverzeichnis festlegen

read.table("path/file") # Einlesen Datensatz. Befehl anpassen, je nach Dateityp,


Überschrift ja, nein (header = T / F),
Trennzeichen (sep = "," / ";"),
Dezimaltrennzeichen (dec="," üblich ist Punkt)…
Empfehlung Excel-Datei als csv abspeichern.
Siehe auch ?read.table für mehr Infos.
read.csv("path/file") # liest durch Kommata getrennte Spalten
read.csv2("path/file") # liest durch Semikolon getrennte Spalten, Komma als
Dezimaltrennzeichen
read.spss("path/file") # liest SPSS Datensatz, je nach Anforderungen zusätzlich
(to.data.frame=T,use.missings=F)

load(file="path/file") # Lädt Datensatz

data() # Zeigt R interne Datensätze an


data(iris) # Lädt den R internen Datensatz iris

View(Datensatz) # Zeigt die Datentabelle Datensatz in neuem Fenster an


fix(Datensatz) # Zeigt Datensatz in externem Fenster an und man kann ihn direkt
verändern (Hinweis: funktioniert teilweise erst nach Installation
zusätzlicher Module)
head(Datensatz) # Zeigt die ersten Zeilen des Datensatzes in der Console an

attach(Datensatz) # Datensatz aktivieren - von nun an lassen sich alle Elemente des
Datensatzes ohne das Präfix " Datensatz$..." aufrufen
detach(Datensatz) # Datensatz deaktivieren

install.packages("Paket") # Paket installieren


library(Paket) # Paket laden

ls() # Inhalt des Workspaces


ls.str() # zeigt Objekte im Workspace und deren Struktur (Art)
rm(var1) # var1 wird aus dem Workspace entfernt
rm(list=ls()) # Löscht alle Objekte im Verzeichnis

help(function) # Hilfe für bestimmte Funktion


?function # Hilfe für bestimmte Funktion
??“Begriff“ # Hilfe für bestimmten Begriff, wenn exakte Funktion z.B. nicht
bekannt

<- # Zuweisungspfeil, erstellt ein neues Objekt links vom Pfeil


(alternativ Gleichheitszeichen)
subset(Datensatz1, var1<=70) # gibt alle Zeilen der Datentabelle Datensatz1 aus,
die in der var1 einen Wert ≤ 70 haben (Filterung)
subset(Datensatz1, select=var1) # Auswahl einer bestimmten Variablen

Datensatz1$var1 # gibt var1 der Datentabelle Datensatz1 aus


Datensatz1[Datensatz1$var1<=70] # gibt alle Zeilen der Datentabelle Datensatz1 aus,
die in der var1 einen Wert ≤ 70 haben

Arithmetische Operationen

+ Addition
- Subtraktion
* Multiplikation
/ Division
ˆ Potenzierung

Logische Operationen

== gleich
!= ungleich
< kleiner
> größer
<= kleiner gleich
>= größer gleich

& logisches UND


| logisches ODER
! logisches NICHT

%in% enthalten in

Elementare Funktionen

sqrt() # Wurzel (square root)


abs() # Absolutbetrag
log() # natürlicher Logarithmus
log10() # 10er Logarithmus
exp() # Exponentialfunktion
sin(),cos(),tan() # Sinus, Kosinus, Tangens

round(3141.5927, 3) # auf 3 Dezimalstellen runden


round(3141.5927) # ohne Dezimalstellen
round(3141.5927 , -2) # auf 2 Vorkommastellen

Veränderungen an Objekten

paste() # Strings werden zusammengefügt


substr(x, start, stop) # Extrahiert oder ersetzt Substring über Position
sub(pattern, replacement, x) # Sucht nach pattern in Objekt x, das durch replacement ersetzt
wird
Vektoren und Matrizen

c(1,2,4,5,7) # verbindet die Werte 1, 2, 4, 5, 7 zu einem Vektor


1:n # erzeugt den Vektor 1, 2, ..,n
rep(x, n) # wiederholt den Vektor (oder die Zahl) x n-mal
rep(c(2,6),3) # erzeugt Vektor mit den Elementen 2 6 2 6 2 6
seq(from, to, by=) # erzeugt einen Vektor mit Elementen von from bis to in fester
Schrittweite by
seq(2,20,length.out=3) # erzeugt Vektor 2 11 20 (1 bis 20, 3 Elemente)
factor(c("m", "w", "m", "w", "m", "w")) # erzeugt Faktor Geschlecht: m=männlich, w=weiblich

class(var1) # Zu welcher Klasse gehört das Objekt var1


mode(var1) # Datentyp der Elemente im Objekt var1
str(var1) # Zeigt innere Struktur des Objekts und den Datentyp an

is.numeric(x) # überprüft, ob Objekt vom Typ numeric ist - Antwort TRUE/FALSE


is.character(x) # überprüft, ob Objekt vom Typ character ist - Antwort TRUE/FALSE
as.character(7) # Umwandlung der Zahl 7 in einen character "7"
as.numeric("8") # Umwandlung des characters 8 in eine Zahl

is.factor(var1) # überprüft, ob Objekt vom Typ factor ist - Antwort TRUE/FALSE


as.factor(var1) # wandelt das Objekt var1 in einen Faktor um
var1 <- factor(var1) # wandelt das Objekt var1 in einen Faktor um
levels(var1) # Zeigt Stufen des Faktors

rbind(a, b) #Vektoren a und b „zeilenweise” zu Matrix zusammengeführt


cbind(a, b) #Vektoren a und b „spaltenweise” zu Matrix zusammengeführt

data.frame(a,b,c) # führt die Objekte a, b, c zu einem Datenframe zusammen (gleich


lange Vektoren)

a[i] # gibt die i-te Komponente des Vektors a aus


a[1:5] # gibt die ersten 5 Komponenten von a aus
a[c(2,3,5)] # gibt die 2., 3. und 5. Komponente des Vektors a aus
a[a<1|a>3] # Alle Elemente größer als 3 oder kleiner als 1
a[b <= 30] # gibt den Vektor derjenigen Komponenten ai aus, für die b i ≤ 30 ist
a[Gender=="weiblich"] # Selektion durch qualitatives Merkmal, Werte a für Frauen
a[-2] # entfernt 2. Komponente aus Vektor
a[-c(2,4,7)] # entfernt 2., 4. und 7. Komponente aus Vektor

names(var1) =c("Name Element 1",…) # Zuweisung Namen zu den Elementen des Vektors var1

recode(a, ...) # Umkodieren (library(car))


revalue(a, …) # Umkodieren bei Faktor (library(plyr))

A[a,b] # Gibt Element in Zeile a und Spalte b der Matrix A aus


A[1,] # Gibt erste Zeile der Matrix A aus
A[,3] # dritte Spalte der Matrix A
A[c(1,4),] # erste und vierte Zeile der Matrix A
A[-c(1,4),] # Matrix ohne erste und vierte Zeile
colnames(A) # Spaltennamen
rownames(A) # Zeilennamen
rbind(A,B) # Verbinde Matrizen „zeilenweise”
cbind(A,B) # Verbinde Matrizen „spaltenweise”
matrix(werte, v, w) # erstellt eine Matrix über die eingegebenen Werte, mit v Zeilen
und w Spalten (byrow=T zeilenweise befüllt)

ncol(A) # Anzahl der Spalten


nrow(A) # Anzahl der Zeilen
length(A) # Anzahl der Elemente
dim(A) # Dimension

Befehle und Funktionen für Vektoren / deskriptive Statistik

length(a) # Anzahl der Elemente im Vektor a, Länge des Vektors


rank(a) # Rangbildung
sort(a,decreasing = FALSE)) # Sortierung der Elemente (hier aufsteigend, sonst TRUE)
order(a) # Sortierung der Elemente und gibt ursprüngliche
Positionsnummern aus

sum(a) # Summe der Elemente des Vektors a


cumsum(a) # Laufende Summe
rowSums(Datensatz) # Summenscores der Zeilen im Datensatz
diff(a) # Differenz der Elemente

min(a) # Minimum des Vektors a


max(a) # Maximum
range(a) # Spannweite (min, max)
which.max(a) # Index des Maximums
which.min(a) # Index des Minimums
which(a<10) # Index der Elemente die kleiner als 10 sind

mean(a) # arith. Mittel


colMeans(Datensatz) # arith. Mittel der Spalten in einem Datensatz
median(a) # Median
sd(a) # Standardabweichung
var(a) # Varianz

quartile(a) # Quartile von a (type variierbar)


quantile(a,p) # p-Quantil von a
IQR(a) # Interquartilabstand

summary(a) # Zusammenstellung wichtiger Statistiken zu a

scale(a) # Variable a standardisiert

is.na(a) # Gibt es fehlende Werte?


na.rm=TRUE # Argument bei fehlenden Werten
Tabellen

table(a) # Häufigkeitstabelle von a


cumsum(table(a)) # Kumulierte Häufigkeitstabelle von a
table(a,b) # Kreuztabelle von a und b
prop.table(table(a,b)) # Tabelle mit relativen Häufigkeiten (Zellenhäufigkeit/Gesamt)
prop.table(table(a,b),1)) # Relative Häufigkeiten bezogen auf Zeilen
prop.table(table(a,b),2)) # Relative Häufigkeiten bezogen auf Spalten
addmargins(table(a,b)) # Kreuztabelle von a und b mit Spalten- und Zeilensummen

Graphiken

Standard-Plots

barplot(table()) #Säulendiagramm
boxplot(a) #Boxplot
boxplot(b ~ a) # Gruppierte Boxplots
hist() # Histogramm
pairs() # Streudiagramm Matrix
plot(a) # Standardplot (je nach Klasse des Objekts)
plot(a,b) # Standardplot a gegen b (je nach Klasse der Objekte)
pie() # Kreisdiagramm
qqPlot() # Quantil-Quantil-Plot (library(car))
qqnorm() # Quantil-Plot für Normalverteilung
stem() # Stem&Leaf-Diagramm

abline() # Zeichnen einer Geraden ins Diagramm (z.B. bei Regression lm)

Graphikparameter

xlab=, ylab= # Titel für Achsen, Achsenbeschriftung


xlim=c(0,10), ylim=c(0,10) # Ober-/Untergrenze für x-/y-Achse (hier 0 bis 10)
col= # Farbwahl
cex=,pch= # Größe und Symbol eines Punktes
lty=, lwd= # Linientyp, Liniendicke
type= # Typ (l=Linie, p=Punkte, b=beides)
par(mfrow=c(n, m), mar=c(a,b,c,d)) # mfrow: Aufteilung n x m Subfenster, mar: Abstand zw. Rand und
Plot
mfrow=c(1,1) # Zurücksetzen (1 Plot im Fenster)
?par # Hilfe zu graphischen Parametern
Zusammenhangsmaße

cor(a,b)
cor(a,b, method = „pearson“) # Korrelation nach Pearson f. metrische Variablen
cor(a,b, method = „spearman“) # Rangkorrelationskoeffizient
cor(a,b, method = „kendall“) # Kendalls Tau

phi(table(a,b)) # Phi Koeffizient - Zusammenhang zw. zwei dichotomen Variablen


cramersV(A) # CramersV - Zusammenhangsmaß für 2 oder mehr
nominalskalierte Merkmale (library(lsr))

cor.test(a,b) # Signifikanztest für Korrelation


pcor.test(a,b, z) # partielle Korrelation (z auspartialisiert) (library(ppcor))

Statistische Tests

χ2-Anpassungsteststest

chisq.test(table()) # χ2-Anpassungsteststest (default: mit Yates Korrektur)


chisq.test(table(), correct=F ) # χ2-Anpassungsteststest (ohne Yates Korrektur)
chi.test$expected # erwartete Zellenhäufigkeiten des Modells chi.test
chi.test$observed # beobachtete Zellenhäufigkeiten des Modells chi.test

t-Test

leveneTest(av ~ uv) # Levene-Test auf Varianzgleichheit (library(car))


var.test(x,y) # F-Test auf Varianzgleichheit

t.test(av, mu=x) # Einstichproben t-Test

t.test(av ~ uv) # t-Test für unabhängige Stichproben (default – Welch Test)


t.test(av ~ uv, var.equal=T) # t-Test für unabhängige Stichproben (Annahme gleiche Varianz)

Achtung: „~“ wird genutzt, wenn man einen Vektor für die Testvariable hat (AV z.B. Klausurpunkte) und einen
Vektor, der die Gruppe kennzeichnet (z.B. binäre Gruppierungsvariable Geschlecht: Männer 1, Frauen 0). Haben
Sie zwei metrische Vektoren, die separat für die Testvariable der einzelnen Gruppen stehen (z.B. einen Vektor für
Frauen und einen separaten Vektor für Männer), verwenden Sie ein Komma:
t.test(x, y) # t-Test für unabhängige Stichproben (default – Welch Test)
t.test(x, y, var.equal=T) # t-Test für unabhängige Stichproben (Annahme gleiche Varianz)

t.test(av1, av2, paired=TRUE) # t-Test für abhängige Stichproben

t.test(, alternative="two.sided" (default) / "greater" / "less"") #bei gerichteter Hypothese anpassen

Wilcoxon Test

wilcox.test(sample_a,sample_b, paired=F) # Zweigruppen-Vergleiche bei Rangdaten (Ordinalskala)


Varianzanalyse

aov(av ~ faktor) # Einfaktorielle ANOVA


aov(av ~ faktor1 * faktor2) # Zweifaktorielle ANOVA mit Interaktion

summary(Anova1) # Überblick über die Ergebnisse des Modells Anova1

interaction.plot(faktor1, faktor2, av) # Interaktionsdiagramm

print(model.tables(Anova1, "means")) # Überblick über die Mittelwerte des Modells Anova1

Regressionsanalyse

lm() # lineares Modell


lm(av∼uv) # bestimmt Regressionsparameter der lin. Regression
summary(linModell1) # Zusammenfassung der Ergebnisse des Modells linModell1
coef() # geschätzte Koeffizienten eines linearen Modells
residuals() # Residuen eines linearen Modells
fitted() # gefittete Werte eines linearen Modells
predict() # Vorhersage neuer Werte mit bereits erstelltem linearen Model
plot() # Grafische Analyse / Diagnostik
lm(av ~ uv1 + uv2) # Multiple Regression (ohne Interaktion)
lm(av ~ uv1 * uv2) # Multiple Regression (mit Interaktion)

Befehle zur Modelldiagnose

residuals(linModell1, ...) # Residuen eines Modells


rstandard(linModell1, ...) # standardisierte Residuen
rstudent(m linModell1, ...) # studentisierte Residuen
acf(residuals, ...) # Autokorrelationsfunktion
qqnorm(residuals, ...) # Q-Q-Normalplot
qqline(residuals, ...) # Linie im Q-Q-Normalplot
cooks.distance(linModell1, ...) # Cook's Distance-Werte Di
cor() # empirische Korrelationsmatrix
bptest(linModell1) #Breusch-Pagan Test auf Heteroskedastizität
vif(linModell1, ...) # Varianzinflationsfaktor (library(car)) - Je größer der
Varianzinflationsfaktor desto stärker sind die Hinweise auf
Multikollinearitäten (sollten < 10 sein)

Logistische Regression

glm(av ~ uv, family=binomial) # Logistische Regression


pR2() # Pseudo R² (library(pscl))
invlogit(coef(logit1)[1] + coef(logit1)[2]*x) # Vorhersage für x im Modell logit1 (library(arm))

plot(uv, av)
curve(predict(logit1,data.frame(av=x),type="resp"),add=TRUE) # Diagramm mit geschätzter Funktion.
Wahrscheinlichkeitsverteilungen

Normalverteilungen (default sd=0, mean = 1 (Standardnormalverteilung))

dnorm(x) # Dichtefunktion der Normalverteilung, y-Wert (Höhe) der


Normalverteilung bei Wert x
pnorm(x) # Verteilungsfunktion der Normalverteilung, kumulative
Wahrscheinlichkeitsdichte bei Wert x
qnorm(p) # Quantilsfunktion der Normalverteilung, p-Quantil

rnorm(n) # Zufallszahl aus der Normalverteilung


runif() # Zufallszahl aus der Gleichverteilung
sample() # Zufälliges Ziehen aus einer Menge

Bsp.:
pnorm(1)-pnorm(-1) = 0.6826895 # 68% der Werte liegen innerhalb einer Std.-abw. vom Mittelwert
pnorm(2)-pnorm(-2) = 0.9544997 # ca. 95% der Werte liegen innerhalb 2 Std.-abw. vom Mittelwert

qnorm(.95)= 1.644854 #Zur Identifikation von Quantilen oder kritischer Werte


qnorm(c(.025,.975)) # p = .05, 2-seitig
[1] -1.959964 1.959964