logo

Jak naprawić w R: Operator $ jest nieprawidłowy dla wektorów atomowych

W tym artykule zobaczymy, jak naprawić nieprawidłowy operator $ dla wektorów atomowych w Programowanie R język .

Błąd, który można napotkać w R, to:



$ operator is invalid for atomic vectors>

Taki błąd generuje kompilator R, gdy próbujemy uzyskać element wektora atomowego za pomocą operatora $. Wektor atomowy to po prostu jednowymiarowy obiekt zawierający dane utworzone za pomocą funkcji c() i Vector(). R nie pozwala nam na dostęp do elementów wektora atomowego za pomocą symbolu $. Ale aby uzyskać do nich dostęp, możemy użyć podwójnych nawiasów, tj. [[]] lub funkcji getElement().

Kiedy może wystąpić ten błąd

Rozważmy przykład, w którym mamy wektor liczbowy nosić inicjalizowane pierwszymi pięcioma liczbami naturalnymi. Każdej z liczb przypisuje się nazwę za pomocą funkcji Names() w języku R. Składnię funkcji Names() podano poniżej:

Składnia: nazwy(vect) <- wartość



Parametry:

  • vect: obiekt, tj. wektor, macierz, ramka danych itp.
  • wartość: Odpowiednie nazwy, które mają zostać przypisane

R






# 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>

>

>

Wyjście:

Spróbujmy teraz uzyskać dostęp do elementu trzeci element za pomocą instrukcji, vect$trzeci:

co to jest monitor

R




lista religii

# 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>

>

>

Wyjście:

Kompilator R generuje błąd, ponieważ nie mamy w ten sposób dostępu do elementów wektora atomowego. Aby sprawdzić, czy wektor jest rzeczywiście wektorem atomowym, możemy użyć funkcji is.atomic() w R. Składnię tej funkcji podano poniżej:

Składnia: jest.atomowy(wektor)

Parametry:

vect: Tutaj vect reprezentuje wektor

Typ zwrotu:

  • PRAWDA: Jeśli vect jest wektorem atomowym
  • FAŁSZ: Jeśli vect nie jest wektorem atomowym

Jak naprawić błąd

Istnieją trzy sposoby użycia możemy naprawić ten błąd:

Metoda 1: Dostęp do elementów za pomocą podwójnych nawiasów

Możemy łatwo uzyskać dostęp do elementów wektora atomowego za pomocą podwójnych nawiasów, które to, [[]]:

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'>]]>

>

>

Wyjście:

metoda 2: Dostęp do elementów za pomocą funkcji getElement().

Innym sposobem jest użycie funkcji getElement() w celu uzyskania dostępu do elementów wektora atomowego. Funkcja ma następującą składnię:

Składnia: getElement(vect, specyfikator)

Parametry:

  • vect: reprezentuje wektor
  • specyfikator: reprezentuje nazwę elementu, do którego chcemy uzyskać dostęp

Typ zwrotu:

  • Zwraca element oznaczony specyfikatorem

R


Hasext 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'>)>

>

>

Wyjście:

publiczna vs prywatna Java

Metoda 3: Dostęp do elementów poprzez konwersję wektora na ramkę danych, a następnie użycie operatora $

Innym sposobem jest najpierw przekonwertowanie wektora na ramkę danych, a następnie zastosowanie operatora $. Możemy przekształcić wektor w ramkę danych za pomocą funkcji as.data.frame(). Poniżej podano składnię tej funkcji:

Składnia: jako.data.frame(obiekt)

Parametr:

  • obiekt reprezentuje wektor lub macierz

Typ zwrotu:

  • Zwraca wektor

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>

>

>

Wyjście: