logo

Oplossing in R: $ operator is ongeldig voor atoomvectoren

In dit artikel gaan we zien hoe je kunt repareren dat de operator $ ongeldig is voor atoomvectoren in de R-programmering taal .

De fout waarmee men in R te maken kan krijgen, is:



$ operator is invalid for atomic vectors>

Een dergelijke fout wordt veroorzaakt door de R-compiler wanneer we proberen een element van een atoomvector te verkrijgen met behulp van de operator $. Een atoomvector is eenvoudigweg een eendimensionaal object dat gegevens bevat die zijn gemaakt met behulp van de functies c() en vector(). R staat ons niet toe om toegang te krijgen tot elementen van een atoomvector met behulp van het $-symbool. Maar we kunnen dubbele haakjes gebruiken, dat wil zeggen [[]] of de functie getElement() om er toegang toe te krijgen.

Wanneer deze fout kan optreden

Laten we een voorbeeld bekijken waarin we een numerieke vector hebben dragen geïnitialiseerd met de eerste vijf natuurlijke getallen. Aan elk van de getallen wordt een naam toegewezen met behulp van de functie namen() in R. De syntaxis van de functie namen() wordt hieronder gegeven:

Syntaxis: namen(vect) <- waarde



Parameters:

  • vect: een object, d.w.z. vector, matrix, dataframe, enz.
  • waarde: De overeenkomstige namen die moeten worden toegewezen

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>

>

>

Shilpa Shetty leeftijd

Uitgang:

Laten we nu proberen toegang te krijgen tot het derde element van het element met behulp van de instructie: vect$derde:

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>

>

>

Uitgang:

De R-compiler produceert een fout omdat we op deze manier geen toegang krijgen tot elementen in een atoomvector. Om te controleren of de vector echt een atoomvector is, kunnen we de functie is.atomic() in R gebruiken. De syntaxis van deze functie wordt hieronder gegeven:

Syntaxis: is.atomic(vect)

Parameters:

vect: Hier vertegenwoordigt vect een vector

Retourtype:

  • WAAR: Als vect een atoomvector is
  • FALSE: Als vect geen atoomvector is

Hoe u de fout kunt oplossen

Er zijn drie manieren om dit te gebruiken we kunnen deze fout oplossen:

Java-tekenreeksvergelijking

Methode 1: Toegang tot elementen met dubbele beugels

We hebben gemakkelijk toegang tot elementen van een atoomvector met behulp van dubbele haakjes die [[]]:

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'>]]>

>

>

Uitgang:

Methode 2: Toegang tot elementen met behulp van de functie getElement().

Een andere manier is om de functie getElement() te gebruiken om toegang te krijgen tot elementen van de atoomvector. De functie heeft de volgende syntaxis:

Syntaxis: getElement(vect, specificatie)

Parameters:

  • vect: Het vertegenwoordigt een vector
  • specifier: Het vertegenwoordigt de naam van het element waartoe we toegang willen hebben

Retourtype:

  • Retourneert een element gemarkeerd met een specificatie

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'>)>

>

>

Uitgang:

Methode 3: Toegang krijgen tot elementen door de vector naar een dataframe te converteren en vervolgens de operator $ te gebruiken

De andere manier is om de vector eerst naar een dataframe te converteren en vervolgens de operator $ toe te passen. We kunnen een vector naar een dataframe converteren met behulp van de functie as.data.frame(). De syntaxis van deze functie wordt hieronder gegeven:

Syntaxis: as.data.frame(object)

Parameter:

  • object vertegenwoordigt een vector of matrix

Retourtype:

  • Retourneert een vector

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>

paaseieren in Android

>

>

Uitgang: