I denne artikkelen skal vi se hvordan du fikser $-operatoren er ugyldig for atomvektorer i R programmering Språk .
rekha indisk
Feilen man kan møte i R er:
$ operator is invalid for atomic vectors>
En slik feil produseres av R-kompilatoren når vi prøver å få et element av en atomvektor ved å bruke $-operatoren. En atomvektor er ganske enkelt et 1-dimensjonalt objekt som inneholder data opprettet ved hjelp av c()- og vektor()-funksjoner. R tillater oss ikke å få tilgang til elementer i en atomvektor ved å bruke $-symbolet. Men vi kan bruke doble parenteser, dvs. [[]] eller getElement()-funksjonen for å få tilgang til dem.
Når denne feilen kan oppstå
La oss vurdere et eksempel der vi har en numerisk vektor bære initialisert med de fem første naturlige tallene. Hvert av tallene er tildelt et navn ved å bruke names()-funksjonen i R. Syntaksen til names()-funksjonen er gitt nedenfor:
Syntaks: names(vect) <- verdi
Parametere:
- vect: et objekt, dvs. vektor, matrise, dataramme, etc.
- verdi: De tilsvarende navnene som skal tildeles
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> |
>
>
Produksjon:
La oss nå prøve å få tilgang til elementet tredje element ved å bruke setningen, vect$tredje:
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> |
>
>
Produksjon:
R-kompilatoren produserer en feil fordi vi ikke har tilgang til elementer i en atomvektor på denne måten. For å sjekke om vektoren virkelig er en atomvektor, kan vi bruke funksjonen is.atomic() i R. Syntaksen til denne funksjonen er gitt nedenfor:
Syntaks: is.atomic(vect)
Parametere:
vect: Her representerer vect en vektor
Returtype:
- SANN: Hvis vect er en atomvektor
- FALSE: Hvis vect ikke er en atomvektor
Hvordan fikse feilen
Det er tre måter å bruke hvilken på vi kan fikse denne feilen:
Metode 1: Tilgang til elementer ved hjelp av doble parenteser
Vi kan enkelt få tilgang til elementer i en atomvektor ved hjelp av doble parenteser som den, [[]]:
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'>]]> |
>
>
Produksjon:
liste på java
Metode 2: Tilgang til elementer ved hjelp av getElement()-funksjonen
En annen måte er å bruke funksjonen getElement() for å få tilgang til elementer i atomvektoren. Funksjonen har følgende syntaks:
Syntaks: getElement(vect, spesifikasjoner)
Parametere:
- vect: Den representerer en vektor
- specifier: Den representerer navnet på elementet vi ønsker tilgang til
Returtype:
- Returnerer et element merket med spesifikasjoner
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'>)> |
>
>
Produksjon:
Metode 3: Få tilgang til elementer ved å konvertere vektoren til dataramme og deretter bruke $-operatoren
Den andre måten er å konvertere vektoren til en dataramme først og deretter bruke $-operatoren. Vi kan konvertere en vektor til en dataramme ved å bruke funksjonen as.data.frame(). Syntaksen til denne funksjonen er gitt nedenfor:
Syntaks: as.data.frame(objekt)
Parameter:
- objekt representerer en vektor eller matrise
Returtype:
- Returnerer en 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> |
>
>
Produksjon: