logo

Kuinka korjata R: $-operaattori ei kelpaa atomivektoreille

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 numeerinen

Parametrit:

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ö: