Zahlenreihen
div class="clipdocs-coding-class">
Nachdem wir uns den Umgang mit Vektoren angeschaut haben und cbind() und rbind() kennengelernt haben, wollen wir nun 3 Funktionen lernen mit denen wir Zahlenreihen erstellen können.
Wiederholung
Zwei Funktionen zur Erstellung von Vektoren bzw. Zahlenreihen kennen wir schon:
a <- 1:4
a
## [1] 1 2 3 4
b <- c(1, 2, 3, 4)
b
## [1] 1 2 3 4
Der Unterschied besteht darin, dass die Schreibweise Start:Ziel immer in 1er-Schritten geht und das die Zahlen als integer-Datentyp angelegt werden. Bei der c()-Funktion (combine) können wir allen beliebigen Zahlen miteinander kombinieren.
Die seq()-Funktion
Um Zahlenreihe mit beliebigen Schritten zu erstellen, können wir die seq()-Funktione nutzen (seq = Sequenz). Hierzu müssen wir den Start (from), das Ende (to) sowie die Art der Schritte (by) übergeben:
a <- seq(from = 1, to = 100, by = 2)
a
## [1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49
## [26] 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
Des Weiteren können wir die seq()-Funktion nutzen, um für einen bereit bestehenden Vektor eine Indexierung durchzuführen, das heißt, die Elemente des Vektors zu zählen. Hierzu nutzen wir das zusätzliche Argument “along =”:
b <- seq(along = a)
b
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
Nun können wir beide Vektoren mit der cbind()-Funktion zu einer Tabelle verbinden:
Data <- cbind(a, b)
head(Data)
## a b
## [1,] 1 1
## [2,] 3 2
## [3,] 5 3
## [4,] 7 4
## [5,] 9 5
## [6,] 11 6
Wenn ich bereits weiß, wieviele Elemente in meinem Vektor anhalten sind, kann ich auch mit der seq_len()-Funktion einen Index erstellen:
c <- seq_len(50)
Data <- cbind(Data, c)
head(Data)
## a b c
## [1,] 1 1 1
## [2,] 3 2 2
## [3,] 5 3 3
## [4,] 7 4 4
## [5,] 9 5 5
## [6,] 11 6 6
Daten wiederholen
Um Variablen und/oder Vektoren zu wiederholen, können wir die rep()-Funktione nutzen (rep = repeat). Hier können wir zusätzlich als Argumente angeben, wie oft wir einen Vektor wiederholen wollen (times) und wie oft jedes Element wiederholt werden soll (each):
a <- 1:10
b <- rep(a, times = 3)
b
## [1] 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5
## [26] 6 7 8 9 10
b <- rep(a, times = 3, each = 3)
b
## [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9
## [26] 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7
## [51] 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
## [76] 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10