logo

So beheben Sie das Problem in R: Der $-Operator ist für atomare Vektoren ungültig

In diesem Artikel erfahren Sie, wie Sie das Problem beheben können, dass der Operator „$“ für atomare Vektoren ungültig ist R-Programmierung Sprache .

Der Fehler, der in R auftreten kann, ist:



$ operator is invalid for atomic vectors>

Ein solcher Fehler wird vom R-Compiler erzeugt, wenn wir versuchen, ein Element eines atomaren Vektors mithilfe des $-Operators abzurufen. Ein atomarer Vektor ist einfach ein eindimensionales Objekt, das Daten enthält, die mit Hilfe der Funktionen c() und vector() erstellt wurden. R erlaubt uns nicht, über das $-Symbol auf Elemente eines atomaren Vektors zuzugreifen. Wir können jedoch doppelte Klammern verwenden, z. B. [[]], oder die Funktion getElement(), um darauf zuzugreifen.

Wann dieser Fehler auftreten könnte

Betrachten wir ein Beispiel, in dem wir einen numerischen Vektor haben tragen mit den ersten fünf natürlichen Zahlen initialisiert. Jeder der Nummern wird mithilfe der Funktion „names()“ in R ein Name zugewiesen. Die Syntax der Funktion „names()“ ist unten angegeben:

Syntax: Namen(vect) <- Wert



Parameter:

  • vect: ein Objekt, d. h. Vektor, Matrix, Datenrahmen usw.
  • Wert: Die entsprechenden zu vergebenden Namen

R



wie man char in string umwandelt




# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the vector> vect>

>

>

Ausgabe:

Versuchen wir nun, mit der Anweisung auf das dritte Element zuzugreifen: vect$dritte:

R


String vergleichen c#



# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the vector> vect$third>

>

>

Ausgabe:

Der R-Compiler erzeugt einen Fehler, da wir auf diese Weise nicht auf Elemente in einem atomaren Vektor zugreifen dürfen. Um zu überprüfen, ob der Vektor wirklich ein atomarer Vektor ist, können wir die Funktion is.atomic() in R verwenden. Die Syntax dieser Funktion ist unten angegeben:

Syntax: is.atomic(vect)

Parameter:

vect: Hier stellt vect einen Vektor dar

Rückgabetyp:

  • WAHR: Wenn vect ein atomarer Vektor ist
  • FALSCH: Wenn vect kein atomarer Vektor ist

So beheben Sie den Fehler

Es gibt drei Möglichkeiten, which zu verwenden Wir können diesen Fehler beheben:

Methode 1: Zugriff auf Elemente mithilfe doppelter Klammern

Mit Hilfe der doppelten Klammern [[]] können wir leicht auf Elemente eines atomaren Vektors zugreifen:

R




# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the third element of the> # vector> vect[[>'third'>]]>

Java-Concat-Strings

>

>

Ausgabe:

Methode 2: Zugriff auf Elemente mit der Funktion getElement()

Eine andere Möglichkeit besteht darin, die Funktion getElement() zu verwenden, um auf Elemente des atomaren Vektors zuzugreifen. Die Funktion hat die folgende Syntax:

Syntax: getElement(vect, specifier)

Parameter:

  • vect: Es stellt einen Vektor dar
  • Bezeichner: Er stellt den Namen des Elements dar, auf das wir zugreifen möchten

Rückgabetyp:

  • Gibt ein mit specifier markiertes Element zurück

R


String vergleichen Java



# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the third element of> # the vector> getElement>(vect,>'third'>)>

>

>

Ausgabe:

Methode 3: Zugriff auf Elemente durch Konvertieren des Vektors in einen Datenrahmen und anschließende Verwendung des $-Operators

Die andere Möglichkeit besteht darin, den Vektor zunächst in einen Datenrahmen umzuwandeln und dann den $-Operator anzuwenden. Mit der Funktion as.data.frame() können wir einen Vektor in einen Datenrahmen umwandeln. Die Syntax dieser Funktion ist unten angegeben:

Syntax: as.data.frame(object)

Parameter:

  • Das Objekt stellt einen Vektor oder eine Matrix dar

Rückgabetyp:

  • Gibt einen Vektor zurück

R




# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Transform the vector to data frame> dataframe <->as.data.frame>(>t>(vect))> > # Access the third element> dataframe$third>

CSV-Datei Java lesen
>

>

Ausgabe: