RStudio Vectoren und Arithetik

In R sind Vektoren die grundlegendsten Objekte, die zur Speicherung von Daten zur Verfügung stehen. Wie wir gesehen haben, können komplexe Datensätze in der Regel in Komponenten zerlegt werden, die Vektoren sind. In einem Datenrahmen ist zum Beispiel jede Spalte ein Vektor. Hier erfahren wir mehr über diese wichtige Klasse.

Einen Vektor erstellen

Mit der Funktion c(), die für concatenate steht, können wir Vektoren erstellen. Wir verwenden c(), um Einträge auf folgende Weise zu verketten:

beispiel <- c(100, 33, 696)
beispiel
#> [1] 100 33 696

#Wir können auch Zeichenvektoren erstellen. Wir verwenden die Anführungszeichen, um zu verdeutlichen, dass es sich bei den Einträgen um Zeichen und nicht um Variablennamen handelt.
laender <- c("deutschland", "usa", "brasilien")

#In R können Sie auch einfache Anführungszeichen verwenden:
laender<- c('deutschland', 'usa', 'brasilien')

#Sie erhalten eine Fehlermeldung, weil die Variablen italy, canada und egypt nicht definiert sind. Wenn wir die Anführungszeichen nicht verwenden, sucht R nach Variablen mit diesen Namen und gibt einen Fehler zurück.

Folgen (Sequenzen)

Eine weitere Funktion zur Erstellung von Vektoren heißt seq() und steht für Sequenzen (Reihen).

seq(1, 10)
#>  [1]  1  2  3  4  5  6  7  8  9 10

Das erste Argument in der Klammer definiert den Anfang der Reihe, das zweite Argument bestimmt das Ende der Reihe. Diese Funktion zählt für gewöhnlich mit Schritten von 1 nach oben. Wenn wir die Funktion mit einem dritten Argument erweitern, können wir bestimmen, mit welchen Schritten die Reihe gesprungen wird:

seq(1, 10, 2)
#> [1] 1 3 5 7 9

#In diesem Beispiel wird von 1 bis 10 gezählt. Die Schrittgröße ist 2. Deshalb endet die Reihe mit dem Wert 9. 

Kurzschreibweise: Wenn wir aufeinanderfolgende ganze Zahlen wollen, können wir die folgende Kurzschrift mit einem Doppelpunkt verwenden:

1:10
#>  [1]  1  2  3  4  5  6  7  8  9 10

Wenn wir diese Funktionen verwenden, erzeugt R Ganzzahlen, keine numerischen Werte, da sie typischerweise verwendet werden, um etwas zu indizieren:

class(1:10)
#> [1] "integer"

Wenn wir jedoch eine Folge erstellen, die Nicht-Ganzzahlen enthält, ändert sich die Klasse:

class(seq(1, 10, 0.5))
#> [1] "numeric"

Im Allgemeinen versucht R, flexibel mit Datentypen umzugehen, indem es errät, was gemeint ist, wenn eine Eingabe nicht dem Erwarteten entspricht. Wenn zum Beispiel x definiert wird als

x <- c(1, "canada", 3)

R hat die Daten in Zeichen umgewandelt. Da Sie eine Zeichenkette in den Vektor eingefügt haben, ging R davon aus, dass die 1 und die 3 tatsächlich Zeichenketten sind, nämlich „1“ und „3“.

Die Funktion as.character() wandelt Zahlen in Zeichen um.
Die Funktion as.numeric() wandelt Zeichen in Zahlen um.
In R wird fehlenden Daten der Wert NA zugewiesen.

Zusammenfassung mit Beispielen

# Wir erstellen Vektoren mit c()
codes <- c(380, 124, 818)
country <- c("italy", "canada", "egypt")

# Wir können auch die Elemente eines numerischen Vektors benennen.
# Beachten Sie, dass die beiden folgenden Codezeilen dasselbe Ergebnis liefern.
codes <- c(italy = 380, canada = 124, egypt = 818)
codes <- c("italy" = 380, "canada" = 124, "egypt" = 818)

# Wir können die Elemente eines numerischen Vektors auch mit der Funktion names() benennen
codes <- c(380, 124, 818)
country <- c("italy","canada","egypt")
names(codes) <- country

# Die Verwendung eckiger Klammern ist nützlich für den Zugriff auf bestimmte Elemente eines Vektors.
codes[2]
codes[c(1,3)]
codes[1:2]

# Sind die Einträge eines Vektors benannt, so kann auf sie durch Bezugnahme auf ihren Namen zugegriffen werden.
codes["canada"]
codes[c("egypt","italy")]

Übung

# Verbinden Sie die Kostenwerte mit den entsprechenden Lebensmitteln.
cost <- c(50, 75, 90, 100, 150)
food <- c("pizza", "burgers", "salads", "cheese", "pasta")
names(cost) <- food

# You already wrote this code
temp <- c(35, 88, 42, 84, 81, 30)
city <- c("Beijing", "Lagos", "Paris", "Rio de Janeiro", "San Juan", "Toronto")

# Assoziieren Sie die Temperaturwerte mit der entsprechenden Stadt.
names(temp) <- city

# Zugriff auf die Temperaturen von Paris und San Juan
temp[c(3,5)]