$-Operator ist ungültig für Atomvektorfehler in R

Jesse John 21 Juni 2023
  1. der $-Operator ist für atomare Vektoren ungültig Fehler in R
  2. die Operatoren [] und [[]] in R
  3. Verwenden Sie die Funktion getElement()
  4. Konvertieren Sie einen Vektor in einen Datenrahmen und verwenden Sie den $-Operator
$-Operator ist ungültig für Atomvektorfehler in R

R bietet verschiedene Möglichkeiten, wie wir Elemente eines Vektors extrahieren können. Dieser Artikel skizziert die Möglichkeiten der Basis R für diesen Zweck.

Ein wichtiger Punkt ist, dass einer der Extraktionsoperatoren von R, $, für Vektoren nicht funktioniert. Wir werden damit beginnen und dann die verschiedenen verfügbaren Optionen sehen.

der $-Operator ist für atomare Vektoren ungültig Fehler in R

Der Operator $ kann verwendet werden, um benannte Spalten eines Datenrahmens oder benannte Elemente von Listen zu extrahieren, funktioniert jedoch nicht mit Vektoren. R löst einen Fehler aus.

Der Operator $ benötigt einen Namen, keinen numerischen Index. Also erstellen wir einen Vektor, in dem die Elemente benannt werden.

Beispielcode:

# Create a vector using c(). Assign names for its elements.
vr1 = c(a = "alpha", d = "delta", r = "rho", s = "sigma")
vr1

# Try to extract the second element.
vr1$d

Ausgang:

> vr1$d
Error in vr1$d : $ operator is invalid for atomic vectors

R sagt uns, dass der $-Operator für atomare Vektoren ungültig ist.

Ein Vektor aus Zahlen oder Zeichenketten wird als atomar bezeichnet, weil alle Elemente vom gleichen Typ sind und er keinen anderen Vektor als Element haben kann.

Für atomare Vektoren wie den in unserem Beispiel müssen wir die anderen Einrichtungen von R verwenden, um Elemente zu extrahieren.

die Operatoren [] und [[]] in R

Wir können die Operatoren [] und [[]] verwenden, um Elemente von Vektoren zu extrahieren.

  1. [] und [[]] können Positionsindizes oder Namen verwenden.
  2. [] kann mehrere Elemente extrahieren, während [[]] nur ein Element extrahieren kann.
  3. [[]] löscht den Namen, während [] den Namen behält, wenn ein Element extrahiert wird.

Beispielcode:

# Use [] with index number or name to extract a single element.
vr1[2]
vr1['d']

# Use [[]] with the index number of the name to extract a single element.
vr1[[2]]
vr1[['d']]

# Use [] to extract multiple elements. Use indices or names.
vr1[c(2,4)]
vr1[c('d', 's')]

Ausgang:

> # Use [] with index number or name to extract a single element.
> vr1[2]
      d
"delta"
> vr1['d']
      d
"delta"

> # Use [[]] with index number of name to extract a single element.
> vr1[[2]]
[1] "delta"
> vr1[['d']]
[1] "delta"

> # Use [] to extract multiple elements. Use indices or names.
> vr1[c(2,4)]
      d       s
"delta" "sigma"
> vr1[c('d', 's')]
      d       s
"delta" "sigma"

Verwenden Sie die Funktion getElement()

Neben den Extraktionsoperatoren bietet R auch die Funktion getElement(), um Elemente aus Vektoren zu extrahieren.

Der getElement()-Operator ähnelt dem [[]]-Operator mit der Option exact = TRUE.

  1. Über den Namen oder Index kann nur ein Element ausgewählt werden.
  2. Der Name wird gelöscht.

Beispielcode:

getElement(vr1, 'd')
getElement(vr1, 2)

Ausgang:

> getElement(vr1, 'd')
[1] "delta"
> getElement(vr1, 2)
[1] "delta"

Konvertieren Sie einen Vektor in einen Datenrahmen und verwenden Sie den $-Operator

Wenn wir den Operator $ verwenden wollen, um ein Element aus einem Vektor zu extrahieren, müssen wir zuerst den Vektor in einen Datenrahmen konvertieren.

Beispielcode:

dfr1 = as.data.frame(vr1)
dfr1

Ausgang:

> dfr1 = as.data.frame(vr1)
> dfr1
    vr1
a alpha
d delta
r   rho
s sigma

Wir haben einen Datenrahmen mit einer Spalte und vier Zeilen. Der Name des Vektors ist zum Spaltennamen geworden; die Elementnamen sind zu Zeilennamen geworden.

Wir müssen die gewünschten Zeilen- und Spaltennamen angeben, um ein Element des ursprünglichen Vektors zu extrahieren. Wir können auch den Zeilennamen für alle Spalten angeben.

Beispielcode:

# Use names for row and column.
dfr1['d','vr1']

# Only name the row, and select all columns.
dfr1['d',]

Ausgang:

> # Use names for row and column.
> dfr1['d','vr1']
[1] "delta"
> # Only name the row and select all columns.
> dfr1['d',]
[1] "delta"
Autor: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

Verwandter Artikel - R Error