R sukūrimas ir paleidimas iš komandinės eilutės
Du R programų vykdymo būdai yra: R scenarijus, kuris yra plačiai naudojamas ir yra labiausiai pageidaujamas, o antrasis yra R CMD BATCH, tai nėra dažnai naudojama komanda. Mes galime jiems paskambinti tiesiai iš komandinės eilutės ar bet kurio kito darbų planuotojo.
Galite įsivaizduoti šias komandas iš IDE įmontuoto apvalkalo, o šiais laikais „RStudio IDE“ yra su įrankiais, kurie patobulina arba valdo R scenarijų ir R CMD BATCH funkcijas.
source () funkcija R viduje yra gera alternatyva naudoti komandinę eilutę. Ši funkcija taip pat gali iškviesti scenarijų, tačiau norint naudoti šią funkciją, turite būti R aplinkoje.
R Kalbos integruoti duomenų rinkiniai
Norėdami išvardyti duomenų rinkinius, kurie yra įmontuoti naudojant R, naudokite komandą data (), tada raskite tai, ko norite, ir duomenų () funkcijoje naudokite duomenų rinkinio pavadinimą. Patinka duomenys (funkcijos pavadinimas).
Rodyti duomenų rinkinius R
Klausiamasis ženklas (?) galėtų būti naudojama prašant pagalbos dėl duomenų rinkinių.
Norėdami patikrinti viską, naudokite santrauką ().
Plot () taip pat yra funkcija, naudojama grafikams braižyti.
Sukurkime bandomąjį scenarijų ir jį paleiskime. Kurti p1.R failą ir išsaugokite jį namų kataloge su tokiu turiniu:
Kodo pavyzdys:
# Paprastas sveikas pasaulio kodas R raidėje ("Hello World!") print (" LinuxHint ") print (5 + 6)
Veikia „Hello World“
R duomenų rėmeliai
Duomenims saugoti lentelėse naudojame R struktūrą, vadinamą a Duomenų rėmas. Jis naudojamas vienodo ilgio vektoriams išvardyti. Pavyzdžiui, šis kintamasis nm yra duomenų rėmas, kuriame yra trys vektoriai x, y, z:
x = c (2, 3, 5) y = c ("aa", "bb", "cc") z = c (TIKRA, NETIESA, TIESA) # nm yra duomenų rėmas nm = duomenys.rėmas (n, s, b)
Yra sąvoka, vadinama ĮmontuotasDuomenų rėmeliai taip pat R. mtcars yra vienas iš tokių įmontuotų duomenų rėmelių R, kuriuos naudosime kaip pavyzdį, kad geriau suprastume. Žiūrėkite žemiau esantį kodą:
Daugiau informacijos apie prekę suteiks mūsų vadybininkai telefonu arba rašykitė į Pagalba internetu.0 6 160 110 3.90 2.62 ... autobusas RX4 Wag 21.0 6 160 110 3.90 2.88… Datsun 710 22.8 4 108 93 3.85 2.32…
„mtcars bulitin“ duomenų kadras
Antraštė yra viršutinė lentelės eilutė, kurioje yra stulpelių pavadinimai. Duomenų eilutes dovanoja kiekviena horizontali linija; kiekviena eilutė prasideda eilutės pavadinimu, po kurios nurodomi tikrieji duomenys. Eilutės duomenų narys vadinamas ląstele.
Įvesime eilutės ir stulpelio koordinates į vieną laužtinį skliaustą „[]“, kad gautume duomenis langelyje. Norėdami atskirti koordinates, naudojame kablelį. Tvarka yra būtina. Koordinatė prasideda eilute, tada kableliu ir baigiasi stulpeliu. Langelio vertė 2nd eilutė ir 1šv stulpelis pateikiamas taip:
> mtcars [2, 2] [1] 6
Taip pat vietoj koordinačių galime naudoti eilutės ir stulpelio pavadinimą:
> mtcars ["Autobusas RX4", "mpg"] [1] 6
funkcija nrow naudojama norint rasti eilučių skaičių duomenų rėmelyje.
> nrow (mtcars) # duomenų eilučių skaičius [1] 32
Ncol funkcija naudojama norint rasti stulpelių skaičių duomenų rėmelyje.
> ncol (mtcars) # stulpelių skaičius [1] 11
R programavimo kilpos
Tam tikromis sąlygomis mes naudojame kilpas, kai norime automatizuoti tam tikrą kodo dalį arba norime pakartoti instrukcijų seką.
Dėl kilpos R
Jei norime išspausdinti šių metų informaciją daugiau nei vieną kartą.
spausdinti (įklijuoti ("Metai yra", 2000)) "Metai yra 2000" spausdinti (įklijuoti ("Metai yra", 2001)) "Metai yra 2001" spausdinti (įklijuoti ("Metai yra", 2002) ) "Metai yra 2002" spausdinti (įklijuoti ("Metai yra", 2003)) "Metai yra 2003" spausdinti (įklijuoti ("Metai yra", 2004)) "Metai yra 2004" spausdinti (įklijuoti (" Metai yra ", 2005))" Metai yra 2005 "
Užuot kartoję savo teiginį dar ir dar kartą, jei naudosime dėl kilpa mums bus daug lengviau. Kaip šitas:
už (metai c (2000,2001,2002,2003,2004,2005)) spausdinti (įklijuoti ("Metai yra", metai)) "Metai yra 2000" "Metai yra 2001" "Metai yra 2002 "" Metai yra 2003 "" Metai yra 2004 "" Metai yra 2005 "
Nors kilpa R
while (išraiška) pareiškimas
Jei išraiškos rezultatas yra TIESA, įvedamas kilpos kūnas. Teiginiai ciklo viduje atliekami, o srautas grįžta, kad vėl įvertintų išraišką. Kilpa kartosis tol, kol išraiška bus įvertinta į FALSE, tokiu atveju kilpa išeis.
„Loop“ pavyzdys:
# i iš pradžių inicijuojamas į 0 i = 0, o (i<5) print (i) i=i+1 Output: 0 1 2 3 4
Pirmiau, o cikle, išraiška yra i<5kuri vertina TIKRĄ, nes 0 yra mažiau nei 5. Vadinasi, vykdomas kilpos kūnas ir i yra išvestis ir didinama. Svarbu didinti i kilpos viduje, todėl tam tikru momentu ji kažkaip atitiks sąlygą. Kitame cikle vertė i yra 1, o ciklas tęsiasi. Tai kartosis iki i lygus 5, kai sąlyga 5<5 reached loop will give FALSE and the while loop will exit.
R funkcijos
Norėdami sukurti a funkcija mes naudojame direktyvą (). Tiksliau, jie yra R klasės objektai funkcija.
f <- function() ##some piece of instructions
Pažymėtina, kad funkcijos gali būti perduotos kitoms funkcijoms, nes gali būti įdėti argumentai ir funkcijos, kad būtų galima nustatyti kitos funkcijos funkciją.
Funkcijose gali būti keli įvardyti argumentai, turintys numatytąsias reikšmes. Jei nenorite numatytosios vertės, galite nustatyti jos vertę į NULL.
Keletas faktų apie R funkcijos argumentus:
- Funkcijos apibrėžime priimti argumentai yra formalūs argumentai
- Funkcija „Formals“ galėtų pateikti visų formalių funkcijos argumentų sąrašą
- Ne kiekvienas funkcijos R iškvietimas naudoja visus formalius argumentus
- Funkcijos argumentuose gali būti numatytosios vertės arba jų gali trūkti
# Funkcijos apibrėžimas: f <- function (x, y = 1, z = 2, s= NULL)
Logistinės regresijos modelio su įmontuotu duomenų rinkiniu kūrimas
The glm () funkcija naudojama R, kad atitiktų logistinę regresiją. funkcija glm () yra panaši į lm (), tačiau glm () turi keletą papildomų parametrų. Jo formatas atrodo taip:
glm (X ~ Z1 + Z2 + Z3, family = binomial (link = ”logit”), data = mydata)
X priklauso nuo Z1, Z2 ir Z3 reikšmių. Tai reiškia, kad Z1, Z2 ir Z3 yra nepriklausomi kintamieji, o X yra priklausomas. Funkcija apima papildomą parametrų šeimą ir turi reikšmę binomialą (link = „logit“), o tai reiškia, kad nuorodos funkcija yra logitinė, o regresijos modelio tikimybės pasiskirstymas yra binominis.
Tarkime, kad turime studento pavyzdį, kur jis gaus priėmimą, remdamasis dviem egzaminų rezultatais. Duomenų rinkinyje yra šie elementai:
- rezultatas _1- Rezultatas-1 balas
- rezultatas _2- Rezultatas -2 balas
- priimtas- 1, jei priimamas, arba 0, jei neįleidžiamas
Šiame pavyzdyje turime dvi reikšmes: 1, jei studentas gavo priėmimą, ir 0, jei negavo priėmimo. Turime sukurti modelį, kad galėtume numatyti, ar studentas gavo priėmimą, ar ne,. Atsižvelgiant į nurodytą problemą, pripažintas laikomas kintamuoju, egzaminas_1 ir egzaminas_2 laikomi nepriklausomais kintamaisiais. Tam modeliui pateikiamas mūsų R kodas
> Modelis_1<-glm(admitted ~ result_1 +result_2, family = binomial("logit"), data=data)
Tarkime, kad turime du studento rezultatus. Rezultatas-1 65% ir rezultatas-2 90%, dabar mes prognozuosime, kad studentas gaus priėmimą arba ne, kad įvertintų tikimybę, kad studentas gaus priėmimą, mūsų R kodas yra toks:
> in_frame<-data.frame(result_1=65,result_2=90) >numatyti (Model_1, in_frame, type = "response") Išvestis: 0.9894302
Pirmiau pateiktas rezultatas rodo tikimybę tarp 0 ir 1. Jei tada jis yra mažesnis nei 0.5 tai reiškia, kad studentas negavo priėmimo. Esant tokiai būklei, tai bus NETIESA. Jei jis didesnis nei 0.5, sąlyga bus laikoma TIKRA, o tai reiškia, kad studentas gavo priėmimą. Norėdami prognozuoti tikimybę nuo 0 iki 1, turime naudoti funkciją round ().
R kodas yra toks, kaip parodyta žemiau:
> apvalus (numatyti (Model_1, in_frame, type = "response")) [/ code] Išvestis: 1
Studentas gaus priėmimą, nes rezultatas yra 1. Be to, taip pat galime numatyti kitus stebėjimus.
Logistinės regresijos modelio (balų) naudojimas su naujais duomenimis
Kai reikia, modelį galime išsaugoti faile. Mūsų traukinio modelio R kodas atrodys taip:
modelis <- glm(my_formula, family=binomial(link='logit'),data=model_set)
Šį modelį galima išsaugoti:
išsaugoti (failas = "failo vardas", failas)
Failą galite naudoti jį išsaugoję naudodami tą R kodo ramybę:
įkelti (failas = "failo vardas")
Norėdami pritaikyti modelį naujiems duomenims, galite naudoti šią kodo eilutę:
model_set $ pred <- predict(the_model, newdata=model_set, type="response")
PASTABA: Model_set negalima priskirti jokiam kintamajam. Norėdami įkelti modelį, naudosime funkciją load (). Nauji pastebėjimai modelyje nieko nepakeis. Modelis išliks tas pats. Mes naudojame senąjį modelį, norėdami prognozuoti naujus duomenis, kad niekas nekeistų modelio.
Išvada
Tikiuosi, kad pamatėte, kaip R programavimas veikia pagrindiniu būdu ir kaip galite greitai pradėti veikti atlikdami mašininį mokymąsi ir statistikos kodavimą naudodami R.