logo

Ako opraviť v R: Operátor $ je neplatný pre atómové vektory

V tomto článku uvidíme, ako opraviť operátor $ neplatný pre atómové vektory v R programovanie Jazyk .

Chyba, s ktorou sa človek môže stretnúť v R je:



$ operator is invalid for atomic vectors>

Takúto chybu vytvára kompilátor R, keď sa pokúšame získať prvok atómového vektora pomocou operátora $. Atómový vektor je jednoducho 1-rozmerný objekt obsahujúci dáta vytvorené pomocou funkcií c() a vector(). R nám neumožňuje prístup k prvkom atómového vektora pomocou symbolu $. Na prístup k nim však môžeme použiť dvojité zátvorky, tj [[]] alebo funkciu getElement().

Kedy môže nastať táto chyba

Zoberme si príklad, v ktorom máme číselný vektor niesť inicializované prvými piatimi prirodzenými číslami. Každému z čísel je priradený názov pomocou funkcie names() v R. Syntax funkcie names() je uvedená nižšie:

Syntax: name(vect) <- hodnota



Parametre:

  • vect: objekt, t. j. vektor, matica, dátový rámec atď.
  • hodnota: Zodpovedajúce názvy, ktoré sa majú priradiť

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>

>

>

Výkon:

Teraz sa pokúsime získať prístup k tretiemu prvku pomocou príkazu, vect$third:

príkaz javascript if

R




ako previesť celé číslo na reťazec v jave

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

>

>

Výkon:

Kompilátor R vytvára chybu, pretože týmto spôsobom nemôžeme pristupovať k prvkom v atómovom vektore. Na kontrolu, či je vektor skutočne atómovým vektorom, môžeme použiť funkciu is.atomic() v R. Syntax tejto funkcie je uvedená nižšie:

Syntax: is.atomic(vect)

Parametre:

vect: Vect tu predstavuje vektor

Typ návratu:

  • TRUE: Ak vect je atómový vektor
  • FALSE: Ak vect nie je atómový vektor

Ako opraviť chybu

Existujú tri spôsoby použitia môžeme opraviť túto chybu:

Metóda 1: Prístup k prvkom pomocou dvojitých zátvoriek

K prvkom atómového vektora môžeme ľahko pristupovať pomocou dvojitých zátvoriek, že [[]]:

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

>

>

Výkon:

Metóda 2: Prístup k prvkom pomocou funkcie getElement().

Ďalším spôsobom je použitie funkcie getElement() na prístup k prvkom atómového vektora. Funkcia má nasledujúcu syntax:

Syntax: getElement(vect, špecifikátor)

Parametre:

  • vect: Predstavuje vektor
  • špecifikátor: Predstavuje názov prvku, ku ktorému chceme pristupovať

Typ návratu:

  • Vráti prvok označený špecifikátorom

R


býci vs vôl



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

>

>

Výkon:

anotácie jarných topánok

Metóda 3: Prístup k prvkom prevodom vektora na dátový rámec a potom použitím operátora $

Druhým spôsobom je najprv previesť vektor na dátový rámec a potom použiť operátor $. Pomocou funkcie as.data.frame() môžeme previesť vektor na dátový rámec. Syntax tejto funkcie je uvedená nižšie:

Syntax: as.data.frame(object)

Parameter:

  • objekt predstavuje vektor alebo maticu

Typ návratu:

  • Vráti vektor

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>

>

>

Výkon: