Šajā rakstā mēs redzēsim, kā noteikt, ka $ operators nav derīgs atomu vektoriem R programmēšana valodu .
Kļūda, ar kuru var saskarties R, ir:
$ operator is invalid for atomic vectors>
Šādu kļūdu rada R kompilators, mēģinot iegūt atomu vektora elementu, izmantojot operatoru $. Atomu vektors ir vienkārši 1 dimensijas objekts, kas satur datus, kas izveidoti ar funkciju c () un vektora () palīdzību. R neļauj mums piekļūt atomu vektora elementiem, izmantojot simbolu $. Taču mēs varam izmantot dubultiekavas, t.i., [[]] vai funkciju getElement(), lai tām piekļūtu.
Kad var rasties šī kļūda
Apskatīsim piemēru, kurā mums ir skaitlisks vektors nēsāt inicializēts ar pirmajiem pieciem naturālajiem skaitļiem. Katram no cipariem tiek piešķirts nosaukums, izmantojot R funkciju names(). Funkcijas names() sintakse ir norādīta tālāk:
Sintakse: nosaukumi(vect) <- vērtība
Parametri:
- vects: objekts, t.i., vektors, matrica, datu rāmis utt.
- vērtība: atbilstošie nosaukumi, kas jāpiešķir
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> |
>
>
Izvade:
Tagad mēģināsim piekļūt elementam trešajam elementam, izmantojot paziņojumu, 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> |
>
>
Izvade:
R kompilators rada kļūdu, jo mums nav atļauts šādā veidā piekļūt elementiem atomu vektorā. Lai pārbaudītu, vai vektors patiešām ir atomu vektors, R var izmantot funkciju is.atomic(). Šīs funkcijas sintakse ir norādīta tālāk:
Sintakse: is.atomic(vect)
Parametri:
vects: šeit vektors apzīmē vektoru
Atgriešanas veids:
- TRUE: Ja vektors ir atomu vektors
- FALSE: Ja vektors nav atomu vektors
Kā novērst kļūdu
Ir trīs veidi, kā to izmantot mēs varam labot šo kļūdu:
1. metode: piekļuve elementiem, izmantojot dubultiekavas
Mēs varam viegli piekļūt atomu vektora elementiem, izmantojot dubultās iekavas, kas [[]]:
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'>]]> |
>
>
Izvade:
Metode 2. Piekļuve elementiem, izmantojot funkciju getElement().
Vēl viens veids ir izmantot funkciju getElement(), lai piekļūtu atomu vektora elementiem. Funkcijai ir šāda sintakse:
Sintakse: getElement(vect, specifier)
Parametri:
- vects: tas apzīmē vektoru
- precizētājs: tas apzīmē tā elementa nosaukumu, kuram mēs vēlamies piekļūt
Atgriešanas veids:
- Atgriež elementu, kas atzīmēts ar precizētāju
R
atlasiet sql no vairākām tabulām
# 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'>)> |
>
>
Izvade:
3. metode: piekļūstiet elementiem, pārvēršot vektoru datu rāmī un pēc tam izmantojot operatoru $
Otrs veids ir vispirms pārveidot vektoru par datu kadru un pēc tam lietot operatoru $. Mēs varam pārvērst vektoru datu rāmī, izmantojot funkciju as.data.frame(). Šīs funkcijas sintakse ir norādīta zemāk:
Sintakse: as.data.frame(objekts)
Parametrs:
- objekts attēlo vektoru vai matricu
Atgriešanas veids:
- Atgriež vektoru
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> |
>
>
Izvade: