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: