Î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 ifvect: 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: