logo

Cum se remediază în R: operatorul $ este nevalid pentru vectorii atomici

În acest articol, vom vedea cum să remediați operatorul $ invalid pentru vectorii atomici din programare R limba .

Eroarea cu care se poate confrunta în R este:



$ operator is invalid for atomic vectors>

O astfel de eroare este produsă de compilatorul R atunci când încercăm să obținem un element al unui vector atomic folosind operatorul $. Un vector atomic este pur și simplu un obiect unidimensional care conține date create cu ajutorul funcțiilor c() și vector(). R nu ne permite să accesăm elemente ale unui vector atomic folosind simbolul $. Dar putem folosi paranteze duble, adică [[]] sau funcția getElement() pentru a le accesa.

Când poate apărea această eroare

Să luăm în considerare un exemplu în care avem un vector numeric transporta initializat cu primele cinci numere naturale. Fiecărui numere i se atribuie un nume folosind funcția names() din R. Sintaxa funcției names() este dată mai jos:

Sintaxă: nume(vect) <- valoare



Parametri:

  • vect: un obiect, adică vector, matrice, cadru de date etc.
  • valoare: Numele corespunzătoare care urmează să fie atribuite

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>

exemple nfa
>

>

Ieșire:

Acum să încercăm să accesăm elementul al treilea element folosind instrucțiunea, 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>

>

>

Ieșire:

Compilatorul R produce o eroare deoarece nu avem voie să accesăm elemente dintr-un vector atomic în acest fel. Pentru a verifica dacă vectorul este într-adevăr un vector atomic, putem folosi funcția is.atomic() în R. Sintaxa acestei funcții este dată mai jos:

Sintaxă: este.atomic(vect)

Parametri:

declarația bash if

vect: Aici, vect reprezintă un vector

Tip returnare:

  • TRUE: Dacă vect este un vector atomic
  • FALS: Dacă vect nu este un vector atomic

Cum să remediați eroarea

Există trei moduri de utilizare a cărora putem remedia această eroare:

Metoda 1: Accesarea elementelor folosind paranteze duble

Putem accesa cu ușurință elementele unui vector atomic cu ajutorul parantezelor duble pe care acesta, [[]]:

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

>

>

Ieșire:

Metodă 2: Accesarea elementelor folosind funcția getElement().

O altă modalitate este să utilizați funcția getElement() pentru a accesa elemente ale vectorului atomic. Funcția are următoarea sintaxă:

Sintaxă: getElement(vect, specificator)

Parametri:

  • vect: Reprezintă un vector
  • specificator: Reprezintă numele elementului pe care dorim să-l accesăm

Tip returnare:

  • Returnează un element marcat cu specificatorul

R


cheia primară și cheia compusă în sql



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

>

>

Ieșire:

Metoda 3: Accesarea elementelor prin conversia vectorului în cadru de date și apoi folosind operatorul $

Cealaltă modalitate este de a converti mai întâi vectorul într-un cadru de date și apoi de a aplica operatorul $. Putem converti un vector într-un cadru de date folosind funcția as.data.frame(). Sintaxa acestei funcții este prezentată mai jos:

Sintaxă: ca.date.cadru(obiect)

Parametru:

  • obiectul reprezintă un vector sau o matrice

Tip returnare:

  • Returnează un vector

R

blocați o aplicație Android




# 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>

>

>

Ieșire: