1e5 / 33[1] 3030.303
pi %% 3[1] 0.1415927
1 / 3 + 1 / 2[1] 0.8333333
6^8[1] 1679616
Kurz und (fast) schmerzlos
2026-03-19
| Operator | Beschreibung | Beispiel |
|---|---|---|
+ |
Addieren | 4 + 5 = 9 |
- |
Subtrahieren | 5 - 4 = 1 |
* |
Multiplizieren | 4 * 4 = 16 |
/ |
Dividieren | 1 / 2 = 0.5 |
^ |
Potenzieren | 2^0.5 = 1.414214 |
%% |
Modulo bilden | 7 %% 5 = 2 |
<- (Tastenkombination alt + -)pi ist eine vorbelegte Variable mit Näherung für \(\pi\)Zuweisung nach rechts
<- funktioniert auch so -> rum
Es geht aber auch traditionell
=
| Datentyp | Literale | Art |
|---|---|---|
| logical | TRUE, FALSE |
Wahrheitswert |
| integer | 5L, 125L |
Ganze Zahl |
| double | 1, 1.75, 1e10 |
‘Reelle’ Zahl |
| character | "Hello World!" |
Zeichenkette |
double
| Konstante | Bedeutung |
|---|---|
Inf und -Inf |
Unendlich und minus Unendlich |
NaN |
Rechenoperation ergibt keine reelle Zahl, z.B. \(\sqrt{-1}\) |
NULL |
Ein leeres Objekt |
NA |
Unbekannter Datenwert (Not Available) |
| Funktionen | Beschreibung |
|---|---|
sin(x), cos(x), tan(x), … |
Trigonometrische Funktionen |
abs(x), sqrt(x) |
Absolutwert, Wurzel |
log(x), exp(x) |
Natürlicher Logarithmus und Exponentialfunktion |
log2(x), log10(x) |
Logarithmus mit anderen Basen |
Beispiele
| Funktion | Bedeutung |
|---|---|
as.numeric(x) |
Konvertiert in eine Zahl |
as.character(x) |
Konvertiert in eine Zeichenkette |
as.logical(x) |
In Wahrheitswert konvertieren |
as.logical
FALSE,TRUE
| Operator | Bedeutung |
|---|---|
a < b, a <= b |
Kleiner und kleiner gleich |
a > b, a >= b |
Größer und größer gleich |
a == b, a != b |
Exakt gleich und nicht gleich |
near(a, b) |
Fast gleich |
is.na(x) |
Test of x gleich NA |
| Verknüpfung | Bedeutung |
|---|---|
a & b |
Logisches und |
a | b |
Logisches oder |
!a |
Negation |
→ Rundungsfehler, Zahlen mit rund 15 Nachkommastellen
→ Vergleichen mit near()
| Funktion | Beschreibung |
|---|---|
paste0(...) |
Verbindet mehrere Werte zu Character |
paste(..., sep = " ") |
Wie paste0 aber mit Trennzeichen |
signif(x, digits = 6) |
Rundet auf Anzahl von signifikanten Stellen |
round(x, digits = 0) |
Runden auf Anzahl von Stellen |
Funktion round besitzt Parameter x (die Zahl die gerundet werden soll) und einen optionalen Parameter digits (Anzahl der Stellen). Wird digits nicht angegeben, dann verwendet R den Wert 0. Beim Funktionsaufruf kann man den Namen des Parameters weglassen (kürzer) oder angeben (meist besser zu verstehen).
Der Funktion paste können beliebig viele Parameter übergeben werden. Der Name des optionalen Parameters muss angegeben werden.
| Datenstruktur | Beschreibung |
|---|---|
| Vektor | Reihe von Elementen mit gleichem Datentyp |
| Matrix | Wie Vektor aber mit Zeilen und Spalten |
| Array | Wie Matrix aber beliebig viele Indizes |
| List | Wie Vektor aber verschiedene Datentypen |
| Dataframe | Liste, jedes Element ein Vektor, Spalten haben Namen |
→ Dataframe = Datensatz einer Erhebung
Für uns wichtig
→ Hier nur die Dinge, die wir auch benötigen
| Funktion | Beschreibung |
|---|---|
a:b |
Erzeugt einen Vektor von a bis b mit Inkrement 1 |
c(x1, x2, x3) |
Erzeugt einen Vektor mit den Werten x1, x2, x3 |
seq(a, b, by = inc) |
Erzeugt einen Vektor von a bis b mit Inkrement inc |
seq(a, b, length.out = n) |
Erzeugt einen Vektor von a bis b mit n Elementen |
rep(x, times = n) |
Hängt das Array oder die Zahl x n-mal hintereinander |
rep(x, each = n) |
Wiederholt jedes Element in x n-mal |
a:b wie in Matlab (aber kein 1:0.1:2)c steht für combineseq wie Sequenzrep wie repetition = Wiederholung[1] 1.0 1.7 2.4 3.1 3.8 4.5
[1] 1.0 1.8 2.6 3.4 4.2 5.0
[1] 4 2 4 2 4 2
[1] 4 4 4 2 2 2
[1] 4 4 4 4 2 2 2 2
[1] 6 6 6 6 6
[1] 2 3 4 5 6
[1] 5 8 9 8 5
[1] 1.000000 1.414214 1.732051 2.000000 2.236068
→ Ausführung Elementweise
Damit
| Funktion | Bedeutung |
|---|---|
c(a, b, ...) |
Vektor erzeugen (geht auch mit Vektoren) |
length(a) |
Länge eines Vektors |
sum(a), prod(a) |
Summe oder Produkt der Elemente |
rev(a) |
Reihenfolge umdrehen |
unique(a) |
Unterschiedliche Elemente |
a %in% b |
Ist Wert a in Vektor b enthalten? |
| Funktion | Beschreibung |
|---|---|
min(x), max(x) |
Kleinster und größter Wert |
mean(x) |
Mittelwert |
var(x) |
Varianz |
sd(x) |
Standardabweichung |
cor(x, y) |
Korrelationskoeffizient |
quantile(x, probs = c(q1, q2, ...) |
Quantilwerte |
summary(x) |
Gibt Fünf-Punkte-Zusammenfassung aus |
Zum Beispiel
Zu Fuß
[1] 0.9815865
Mit R-Funktion
Kellner:in Ingenieur:in
8.5 50.0
Kellner:in
8.5
Kellner:in
8.5
[1] 29.25
→ Viele Anwendungen, zum Beispiel bei Farbskala
tibble()Name = Vektortibble() aus tidyverse von Hadley Wickhamtibble [5 × 3] (S3: tbl_df/tbl/data.frame)
$ X: int [1:5] 0 1 2 3 4
$ Y: num [1:5] 1.2 3.2 0.5 0.9 1.1
$ Z: chr [1:5] "A" "B" "C" "D" ...
Erste Ausgabe mit Bibliothek gt (Am Anfang konfiguriert)
d$X liefert die Werte zum Merkmal X als Vektor[idx] zugegriffen werden
[1] "alpha = 1.88, beta = -0.25, R2 = 0.14115"
Call:
lm(formula = Y ~ X, data = d)
Residuals:
1 2 3 4 5
-0.68 1.57 -0.88 -0.23 0.22
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.8800 0.8721 2.156 0.120
X -0.2500 0.3560 -0.702 0.533
Residual standard error: 1.126 on 3 degrees of freedom
Multiple R-squared: 0.1411, Adjusted R-squared: -0.1451
F-statistic: 0.493 on 1 and 3 DF, p-value: 0.5332
Komplizierter als man auf den ersten Blick vielleicht denkt
Einfach(er) mit dem lubridate-Paket (in tidyverse enthalten)
Datum und Uhrzeit
ymd_hms und Varianten[1] "2016-11-30 10:30:10 CET"
[1] "2012-08-30 10:30:00 CEST"
[1] "2012-08-30 10:00:00 UTC"
ymd_..., dmy_..., mdy... je nachdem ob Jahr, Tag oder Monat zuerst..._hms, ..._hm, ..._h je nach ZeitangabeUTC (Coordinated Universal Time)CET Central European Time, CEST Central European Summer Timeymd und Varianten[1] "2016-11-30"
[1] "2012-08-30"
[1] "1998-08-01"
ymd, dmy, mdy je nachdem ob Jahr, Tag oder Monat zuerstas_hms() und hms::hms()13:30:30
13:30:30
13:30:30
13:30:30
as_hms() Zeit bestimmen, die seit 0 Uhr verstrichen isthms::hms()make_date() und make_datetime()
year und month selbsterklärendlabel = TRUEabbr = FALSEday = Wievielter Tag im Monatyday = Wievielter Tag im Jahrwday = Wievielter Tag in der Woche (Sonntag = 1)label = TRUE, lange Form mit abbr = FALSEAlter von Friedrich Merz in Tagen am Tag 2026-03-19
Wie lange braucht die Berechnung einer Wurzel?
Ende März um halb drei
23 Stunden später
dhours(): Zeitdauer in physikalischen Stunden\(\rightarrow\) Vergleichen Sie die Zeiten!
as.numeric()[1] 11
[1] 11
[1] 11
as.numeric() in Zahl konvertieren
floor_date()round_date()ceil_date()unit = XXX angebensprintf()Mit sprintf können Ausgaben ein bisschen schöner gestaltet werden. Dabei steht %i für eine ganze Zahl und %5.3f eine Fließkommazahl insgesamt fünf Zeichen breit mit 3 Nachkommastellen.
Den Wert von Variablen kann man auch in den Text einbauen. Hier ein Beispiel
\[1 / 3 \approx 0.3333333\]
mit einer Variablen in einer Formel.
Auswahl der Themen
Nicht behandelt
Bausteine Computergestützter Datenanalyse