I den här artikeln kommer vi att se hur man fixar $-operatorn är ogiltig för atomvektorer i R programmering språk .
Felet som man kan möta i R är:
$ operator is invalid for atomic vectors>
Ett sådant fel produceras av R-kompilatorn när vi försöker få ett element i en atomvektor med hjälp av $-operatorn. En atomvektor är helt enkelt ett 1-dimensionellt objekt som innehåller data skapade med hjälp av c()- och vector()-funktionerna. R tillåter oss inte att komma åt element i en atomvektor med hjälp av $-symbolen. Men vi kan använda dubbla parenteser, dvs [[]] eller funktionen getElement() för att komma åt dem.
När detta fel kan uppstå
Låt oss överväga ett exempel där vi har en numerisk vektor bära initieras med de första fem naturliga talen. Vart och ett av talen tilldelas ett namn med hjälp av funktionen names() i R. Syntaxen för funktionen names() anges nedan:
Syntax: names(vect) <- värde
Parametrar:
- vect: ett objekt, dvs vektor, matris, dataram, etc.
- värde: Motsvarande namn som ska tilldelas
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:
Låt oss nu försöka komma åt elementet tredje elementet med hjälp av uttalandet, vect$tredje:
R
css-omslutningstext
# 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-kompilatorn ger ett fel eftersom vi inte får komma åt element i en atomvektor på detta sätt. För att kontrollera om vektorn verkligen är en atomvektor kan vi använda funktionen is.atomic() i R. Syntaxen för denna funktion ges nedan:
Syntax: is.atomic(vect)
Parametrar:
vect: Här representerar vect en vektor
Returtyp:
- SANT: Om vect är en atomvektor
- FALSK: Om vect inte är en atomvektor
Hur man åtgärdar felet
Det finns tre sätt att använda vilken vi kan fixa detta fel:
Metod 1: Åtkomst till element med dubbla parenteser
Vi kan enkelt komma åt element i en atomvektor med hjälp av dubbla 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'>]]> |
>
>
Produktion:
java konverterar heltal till sträng
Metod 2: Åtkomst till element med funktionen getElement().
Ett annat sätt är att använda funktionen getElement() för att komma åt element i atomvektorn. Funktionen har följande syntax:
Syntax: getElement(vect, specificator)
Parametrar:
- vect: Den representerar en vektor
- specifier: Det representerar namnet på elementet som vi vill komma åt
Returtyp:
- Returnerar ett element markerat 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:
Metod 3: Åtkomst till element genom att konvertera vektorn till dataram och sedan använda $-operatorn
Det andra sättet är att först konvertera vektorn till en dataram och sedan använda $-operatorn. Vi kan konvertera en vektor till en dataram med funktionen as.data.frame(). Syntaxen för denna funktion ges nedan:
Syntax: as.data.frame(object)
Parameter:
- objekt representerar en vektor eller matris
Returtyp:
- Returnerar 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> |
css opacitetsövergång
>
>
Produktion: