In questo articolo, vedremo come correggere l'operatore $ non valido per i vettori atomici nel file Programmazione R lingua .
L'errore che si può incontrare in R è:
$ operator is invalid for atomic vectors>
Un errore di questo tipo viene prodotto dal compilatore R quando proviamo a ottenere un elemento di un vettore atomico utilizzando l'operatore $. Un vettore atomico è semplicemente un oggetto unidimensionale contenente dati creati con l'aiuto delle funzioni c() e vector(). R non ci consente di accedere agli elementi di un vettore atomico utilizzando il simbolo $. Ma possiamo usare le doppie parentesi, ad esempio [[]] o la funzione getElement() per accedervi.
Quando potrebbe verificarsi questo errore
Consideriamo un esempio in cui abbiamo un vettore numerico trasportare inizializzato con i primi cinque numeri naturali. A ciascuno dei numeri viene assegnato un nome utilizzando la funzionenames() in R. La sintassi della funzionenames() è riportata di seguito:
Sintassi: nomi(vect) <- valore
parametri:
- vect: un oggetto, ad esempio vettore, matrice, frame di dati, ecc.
- valore: i nomi corrispondenti da assegnare
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> |
>
>
Produzione:
Ora proviamo ad accedere all'elemento terzo elemento utilizzando l'istruzione, vect$terzo:
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> |
>
rendere eseguibile uno script di shell
>
Produzione:
Il compilatore R produce un errore perché non è consentito accedere agli elementi in un vettore atomico in questo modo. Per verificare se il vettore è realmente un vettore atomico, possiamo utilizzare la funzione is.atomic() in R. La sintassi di questa funzione è riportata di seguito:
Sintassi: is.atomic(vect)
parametri:
vect: qui vect rappresenta un vettore
Tipo di reso:
- VERO: se vect è un vettore atomico
- FALSO: Se vect non è un vettore atomico
Come correggere l'errore
Ci sono tre modi per usarlo possiamo correggere questo errore:
Metodo 1: accesso agli elementi utilizzando parentesi doppie
Possiamo accedere facilmente agli elementi di un vettore atomico con l'aiuto di parentesi doppie che, [[]]:
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'>]]> |
>
>
Produzione:
Metodo 2: accesso agli elementi utilizzando la funzione getElement()
Un altro modo è utilizzare la funzione getElement() per accedere agli elementi del vettore atomico. La funzione ha la seguente sintassi:
Sintassi: getElement(vect, specificatore)
parametri:
- vect: rappresenta un vettore
- specificatore: rappresenta il nome dell'elemento a cui vogliamo accedere
Tipo di reso:
- Restituisce un elemento contrassegnato con specificatore
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'>)> |
>
>
Produzione:
Metodo 3: accesso agli elementi convertendo il vettore in frame di dati e quindi utilizzando l'operatore $
L'altro modo è convertire prima il vettore in un frame di dati e quindi applicare l'operatore $. Possiamo convertire un vettore in un frame di dati utilizzando la funzione as.data.frame(). La sintassi di questa funzione è la seguente:
Sintassi: as.data.frame(oggetto)
mycricketliveParametro:
- l'oggetto rappresenta un vettore o una matrice
Tipo di reso:
- Restituisce un vettore
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> |
>
>
Produzione: