Tässä artikkelissa aiomme nähdä kuinka korjata $-operaattori on virheellinen atomivektoreille R ohjelmointi Kieli .
Virhe, jonka voi kohdata R:ssä, on:
$ operator is invalid for atomic vectors>
Tällaisen virheen tuottaa R-kääntäjä, kun yritämme saada atomivektorin alkiota käyttämällä $-operaattoria. Atomivektori on yksinkertaisesti yksiulotteinen objekti, joka sisältää c()- ja vector()-funktioiden avulla luotua dataa. R ei salli meidän käyttää atomivektorin elementtejä käyttämällä $-symbolia. Mutta voimme käyttää niitä kaksoissulkeilla eli [[]] tai getElement()-funktiolla.
Milloin tämä virhe saattaa ilmetä
Tarkastellaan esimerkkiä, jossa meillä on numeerinen vektori kantaa alustetaan viidellä ensimmäisellä luonnollisella luvulla. Jokaiselle numerolle on annettu nimi käyttämällä R:n names()-funktiota. Names()-funktion syntaksi on annettu alla:
Syntaksi: nimet(vect) <- arvo
Parametrit:
- vektori: Objekti eli vektori, matriisi, tietokehys jne.
- arvo: vastaavat annettavat nimet
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> |
>
>
Lähtö:
Yritetään nyt päästä elementtiin kolmas elementti käskyn avulla, vect$third:
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$third> |
>
>
Lähtö:
R-kääntäjä tuottaa virheen, koska emme pääse käsiksi atomivektorin elementteihin tällä tavalla. Tarkistaaksemme, onko vektori todella atomivektori, voimme käyttää is.atomic()-funktiota R:ssä. Tämän funktion syntaksi on annettu alla:
Syntaksi: is.atomic(vect)
python on numeerinenParametrit:
vect: Tässä vektori edustaa vektoria
Palautustyyppi:
- TOSI: Jos vektori on atomivektori
- EPÄTOSI: Jos vektori ei ole atomivektori
Kuinka korjata virhe
On kolme tapaa käyttää sitä voimme korjata tämän virheen:
Tapa 1: Pääsy elementteihin kaksoissulkeilla
Voimme käyttää atomivektorin elementtejä helposti kaksoissulkeiden avulla, jotka [[]]:
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'>]]> |
>
>
Lähtö:
Menetelmä 2: Elementtien käyttö getElement()-funktiolla
Toinen tapa on käyttää getElement()-funktiota päästäksesi käsiksi atomivektorin elementteihin. Funktiolla on seuraava syntaksi:
Syntaksi: getElement(vektori, määrittäjä)
Parametrit:
- vect: Se edustaa vektoria
- specifier: Se edustaa sen elementin nimeä, jota haluamme käyttää
Palautustyyppi:
- Palauttaa määrittimellä merkityn elementin
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> getElement>(vect,>'third'>)> |
>
>
Lähtö:
Tapa 3: Pääsy elementteihin muuntamalla vektori datakehykseksi ja käyttämällä sitten $-operaattoria
Toinen tapa on muuntaa vektori ensin datakehykseksi ja sitten käyttää $-operaattoria. Voimme muuntaa vektorin tietokehykseksi käyttämällä as.data.frame()-funktiota. Tämän funktion syntaksi on annettu alla:
Syntaksi: as.data.frame(objekti)
Parametri:
- objekti edustaa vektoria tai matriisia
Palautustyyppi:
- Palauttaa vektorin
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> |
>
>
Lähtö: