I denne artikel skal vi se, hvordan man fikser $-operatoren er ugyldig for atomare vektorer i R programmering Sprog .
rekha indisk
Den fejl, man kan stå over for i R er:
$ operator is invalid for atomic vectors>
En sådan fejl produceres af R-kompileren, når vi forsøger at få et element af en atomvektor ved at bruge $-operatoren. En atomvektor er simpelthen et 1-dimensionelt objekt, der indeholder data skabt ved hjælp af c()- og vektor()-funktioner. R tillader os ikke at få adgang til elementer i en atomvektor ved hjælp af $-symbolet. Men vi kan bruge dobbelte parenteser, dvs. [[]] eller funktionen getElement() for at få adgang til dem.
Når denne fejl kan opstå
Lad os overveje et eksempel, hvor vi har en numerisk vektor bære initialiseret med de første fem naturlige tal. Hvert af tallene er tildelt et navn ved hjælp af funktionen names() i R. Syntaksen for funktionen names() er angivet nedenfor:
Syntaks: navne(vect) <- værdi
Parametre:
- vect: et objekt, dvs. vektor, matrix, dataramme osv.
- værdi: De tilsvarende navne, der 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> |
>
>
Produktion:
Lad os nu prøve at få adgang til elementet tredje element ved hjælp af sætningen, 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> |
>
>
Produktion:
R-kompileren producerer en fejl, fordi vi ikke har lov til at få adgang til elementer i en atomvektor på denne måde. For at kontrollere, om vektoren virkelig er en atomvektor, kan vi bruge funktionen is.atomic() i R. Syntaksen for denne funktion er angivet nedenfor:
Syntaks: is.atomic(vect)
Parametre:
vect: Her repræsenterer vect en vektor
Returtype:
- SAND: Hvis vect er en atomvektor
- FALSK: Hvis vect ikke er en atomvektor
Sådan rettes fejlen
Der er tre måder at bruge hvilken på vi kan rette denne fejl:
Metode 1: Adgang til elementer ved hjælp af dobbelte parenteser
Vi kan nemt få adgang til elementer i en atomvektor ved hjælp af dobbelte parenteser, at 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'>]]> |
>
>
Produktion:
til string array java
Metode 2: Adgang til elementer ved hjælp af funktionen getElement().
En anden måde er at bruge funktionen getElement() til at få adgang til elementer i atomvektoren. Funktionen har følgende syntaks:
Syntaks: getElement(vect, specificator)
Parametre:
- vect: Det repræsenterer en vektor
- specificator: Det repræsenterer navnet på det element, vi ønsker at få adgang til
Returtype:
- Returnerer et element markeret med specifier
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'>)> |
>
>
Produktion:
Metode 3: Få adgang til elementer ved at konvertere vektoren til dataramme og derefter bruge $-operatoren
Den anden måde er først at konvertere vektoren til en dataramme og derefter anvende $-operatoren. Vi kan konvertere en vektor til en dataramme ved hjælp af funktionen as.data.frame(). Syntaksen for denne funktion er angivet nedenfor:
Syntaks: as.data.frame(objekt)
Parameter:
- objekt repræsenterer en vektor eller matrix
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> |
>
>
Produktion: