Šiame straipsnyje pamatysime, kaip ištaisyti, kad $ operatorius negalioja atominiams vektoriams R programavimas kalba .
Klaida, su kuria gali susidurti R, yra:
$ operator is invalid for atomic vectors>
Tokią klaidą sukuria R kompiliatorius, kai bandome gauti atominio vektoriaus elementą naudodami operatorių $. Atominis vektorius yra tiesiog 1 dimensijos objektas, kuriame yra duomenų, sukurtų naudojant c() ir vector() funkcijas. R neleidžia mums pasiekti atominio vektoriaus elementų naudojant simbolį $. Tačiau norėdami juos pasiekti galime naudoti dvigubus skliaustus, ty [[]] arba funkciją getElement().
Kai gali atsirasti ši klaida
Panagrinėkime pavyzdį, kuriame turime skaitinį vektorių nešti inicijuojami pirmaisiais penkiais natūraliaisiais skaičiais. Kiekvienas skaičius priskiriamas pavadinimui, naudojant R funkciją names(). Funkcijos names() sintaksė pateikta toliau:
Sintaksė: vardai(vec) <- reikšmė
Parametrai:
- vektorius: objektas, ty vektorius, matrica, duomenų rėmelis ir kt.
- reikšmė: atitinkami pavadinimai, kuriuos reikia priskirti
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> |
>
>
Išvestis:
Dabar pabandykime pasiekti trečiąjį elementą naudodami teiginį, vect$third:
R
programėlė
# 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> |
>
>
Išvestis:
R kompiliatorius sukuria klaidą, nes tokiu būdu mums neleidžiama pasiekti atominio vektoriaus elementų. Norėdami patikrinti, ar vektorius tikrai yra atominis vektorius, R galite naudoti funkciją is.atomic(). Šios funkcijos sintaksė pateikta žemiau:
Sintaksė: is.atomic(vec)
Parametrai:
vektoras: čia vektorius reiškia vektorių
Grąžinimo tipas:
- TEISINGA: jei vektorius yra atominis vektorius
- NETEISINGA: jei vektorius nėra atominis vektorius
Kaip ištaisyti klaidą
Yra trys naudojimo būdai galime ištaisyti šią klaidą:
1 būdas: prieiga prie elementų naudojant dvigubus skliaustus
Mes galime lengvai pasiekti atominio vektoriaus elementus naudodami dvigubus skliaustus, kad [[]]:
R
dvejetainės paieškos algoritmai
# 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'>]]> |
>
>
Išvestis:
Metodas 2: prieiga prie elementų naudojant getElement() funkciją
Kitas būdas yra naudoti funkciją getElement() norint pasiekti atominio vektoriaus elementus. Funkcija turi tokią sintaksę:
Sintaksė: getElement (vektas, specifikatorius)
Parametrai:
- vektorius: reiškia vektorių
- specifier: Tai reiškia elemento, kurį norime pasiekti, pavadinimą
Grąžinimo tipas:
- Grąžina elementą, pažymėtą specifikatoriumi
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'>)> |
>
>
Išvestis:
3 būdas: prieiga prie elementų konvertuojant vektorių į duomenų rėmelį ir naudojant operatorių $
Kitas būdas yra pirmiausia konvertuoti vektorių į duomenų rėmelį ir tada taikyti operatorių $. Mes galime konvertuoti vektorių į duomenų rėmelį naudodami funkciją as.data.frame(). Šios funkcijos sintaksė pateikta žemiau:
Sintaksė: as.data.frame(objektas)
Parametras:
- objektas reiškia vektorių arba matricą
Grąžinimo tipas:
- Grąžina vektorių
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> |
atidaryti failą su java
>
>
Išvestis: