R-Vektor

In diesem Artikel erfahren Sie mehr über Vektor in der R-Programmierung. Sie lernen, sie zu erstellen, mit verschiedenen Methoden auf ihre Elemente zuzugreifen und sie in Ihrem Programm zu ändern.

Vektor ist eine grundlegende Datenstruktur in R. Es enthält Element des gleichen Typs. Die Datentypen können logisch, integer, double, character, complex oder raw sein.

Der Typ eines Vektors kann mit der Funktion typeof() überprüft werden.

Eine weitere wichtige Eigenschaft eines Vektors ist seine Länge. Dies ist die Anzahl der Elemente im Vektor und kann mit der Funktion length() überprüft werden.

Wie erstelle ich einen Vektor in R?

Vektoren werden im Allgemeinen mit der Funktion c() erstellt.

Vektor in der R-Programmierung

Da ein Vektor Elemente desselben Typs haben muss, versucht diese Funktion, Elemente desselben Typs zu erzwingen, wenn sie unterschiedlich sind.

Zwang ist von niedrigeren zu höheren Typen von logisch zu integer zu double zu character .

> x <- c(1, 5, 4, 9, 0)> typeof(x) "double"> length(x) 5> x <- c(1, 5.4, TRUE, "hello")> x "1" "5.4" "TRUE" "hello"> typeof(x) "character"

Wenn wir einen Vektor von fortlaufenden Zahlen erstellen möchten, ist der Operator : sehr hilfreich.

Beispiel 1: Erstellen eines Vektors mit dem Operator

> x <- 1:7; x 1 2 3 4 5 6 7> y <- 2:-2; y 2 1 0 -1 -2

Komplexere Sequenzen können mit der Funktion seq() erstellt werden, z. B. die Anzahl der Punkte in einem Intervall oder die Schrittgröße.

Beispiel 2: Erstellen eines Vektors mit der Funktion seq()

> seq(1, 3, by=0.2) # specify step size 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0> seq(1, 5, length.out=4) # specify length of the vector 1.000000 2.333333 3.666667 5.000000

Wie greife ich auf Elemente eines Vektors zu?

Auf Elemente eines Vektors kann mittels Vektorindizierung zugegriffen werden. Der für die Indizierung verwendete Vektor kann logisch, ganzzahlig oder Zeichenvektor sein.

Ganzzahligen Vektor als Index verwenden

Der Vektorindex in R beginnt bei 1, im Gegensatz zu den meisten Programmiersprachen, in denen der Index bei 0 beginnt.

Wir können einen Vektor von ganzen Zahlen als Index verwenden, um auf bestimmte Elemente zuzugreifen.

Wir können auch negative ganze Zahlen verwenden, um alle Elemente außer den angegebenen zurückzugeben.

Wir können jedoch beim Indizieren keine positiven und negativen Ganzzahlen mischen, und reelle Zahlen werden, falls verwendet, zu Ganzzahlen abgeschnitten.

> x 0 2 4 6 8 10> x # access 3rd element 4> x # access 2nd and 4th element 2 6> x # access all but 1st element 2 4 6 8 10> x # cannot mix positive and negative integersError in x : only 0's may be mixed with negative subscripts> x # real numbers are truncated to integers 2 4

Logischen Vektor als Index verwenden

Wenn wir einen logischen Vektor zum Indizieren verwenden, wird die Position zurückgegeben, an der der logische Vektor TRUE ist.

Diese nützliche Funktion hilft uns beim Filtern von Vektoren, wie unten gezeigt.

> x -3 3> x # filtering vectors based on conditions -3 -1> x 3

Im obigen Beispiel ergibt der Ausdruck x>0 einen logischen Vektor (FALSE, FALSE, FALSE, TRUE), der dann zur Indizierung verwendet wird.

Zeichenvektor als Index verwenden

Diese Art der Indizierung ist nützlich, wenn es um benannte Vektoren geht. Wir können jedes Element eines Vektors benennen.

> x <- c("first"=3, "second"=0, "third"=9)> names(x) "first" "second" "third" > xsecond 0 > xfirst third 3 9

Wie ändere ich einen Vektor in R?

Wir können einen Vektor mit dem Zuweisungsoperator ändern.

Wir können die oben diskutierten Techniken verwenden, um auf bestimmte Elemente zuzugreifen und sie zu ändern.

Wenn wir die Elemente abschneiden möchten, können wir Neuzuweisungen verwenden.

> x -3 -2 -1 0 1 2> x <- 0; x # modify 2nd element -3 0 -1 0 1 2> x <- 5; x # modify elements less than 0 5 0 5 0 1 2> x <- x; x # truncate x to first 4 elements 5 0 5 0

Wie lösche ich einen Vektor?

Wir können einen Vektor löschen, indem wir ihm einfach ein NULL zuweisen.

> x -3 -2 -1 0 1 2> x <- NULL> xNULL> xNULL

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.