R kompileerimine ja käivitamine käsurealt
R-programmide käitamiseks on kaks võimalust: R-skript, mida kasutatakse laialdaselt ja mis on kõige eelistatum, ja teine on R CMD BATCH, see pole tavaliselt kasutatav käsk. Me võime neile helistada otse käsurealt või mõnest muust tööajast.
Mõeldavalt võite neid käske kutsuda IDE-sse sisseehitatud kestast ja tänapäeval on RStudio IDE-ga kaasas tööriistad, mis täiustavad või haldavad R-skripti ja R CMD BATCH-funktsioone.
source () funktsioon R-s on hea alternatiiv käsurea kasutamisele. See funktsioon võib kutsuda ka skripti, kuid selle funktsiooni kasutamiseks peate olema R-keskkonnas.
R sisseehitatud keele andmekomplektid
R-ga sisseehitatud andmekogumite loendamiseks kasutage käsku data (), leidke seejärel soovitud teave ja kasutage funktsiooni data () andmekogumi nime. Nagu andmed (funktsiooni nimi).
Kuva andmekogumid R-s
Küsimärk (?) võiks kasutada andmekogumite jaoks abi küsimiseks.
Kõigi leidmiseks kasutage kokkuvõtet ().
Plot () on ka funktsioon, mida kasutatakse graafikute joonistamiseks.
Loome testskripti ja käivitame selle. Loo p1.R fail ja salvestage see kodukataloog koos järgmise sisuga:
Koodinäide:
# Lihtne tere maailma kood R-formaadis ("Tere maailm!") print (" LinuxHint ") print (5 + 6)
Tere maailma jooksmine
R andmeraamid
Andmete tabelitesse salvestamiseks kasutame R-i struktuuri nimega a Andmeraam. Seda kasutatakse võrdse pikkusega vektorite loetlemiseks. Näiteks järgmine muutuv nm on andmeraam, mis sisaldab kolme vektorit x, y, z:
x = c (2, 3, 5) y = c ("aa", "bb", "cc") z = c (TÕENE, VALE, TÕENE) # nm on andmekaader nm = andmed.raam (n, s, b)
On olemas mõiste, mida nimetatakse SisseehitatudAndmeraamid ka R-s. mtcars on üks sellistest R-i sisseehitatud andmeraamist, mida me oma paremaks mõistmiseks näitena kasutame. Vaadake allolevat koodi:
> mtcars mpg cyl disp hp drat wt… Mazda RX4 21.0 6 160 110 3.90 2.62… buss RX4 Wag 21.0 6 160 110 3.90 2.88… Datsun 710 22.8 4 108 93 3.85 2.32…
mtcars bulitini andmekaader
Päis on veeru nimesid sisaldava tabeli ülemine rida. Andmeread annetatakse iga horisontaalse joone abil; iga rida algab rea nimega ja seejärel tegelike andmetega. Rea andmeliiget nimetatakse lahtriks.
Lahtris andmete hankimiseks sisestame rea ja veeru koordinaadid ühte nurksulgude operaatorisse „[]”. Koordinaatide eraldamiseks kasutame koma. Järjekord on hädavajalik. Koordinaat algab reaga, siis komaga ja lõpeb veeruga. Lahtri väärtus 2nd rida ja 1st veerg on esitatud järgmiselt:
> mtcars [2, 2] [1] 6
Koordinaatide asemel võime kasutada ka rea ja veeru nime:
> mtcars ["Bus RX4", "mpg"] [1] 6
funktsiooni nrow kasutatakse andmeraami ridade arvu leidmiseks.
> nrow (mtcars) # andmeridade arv [1] 32
Funktsiooni ncol kasutatakse andmeraamistikus veergude arvu leidmiseks.
> ncol (mtcars) # veergude arv [1] 11
R Programmeerimissilmused
Teatud tingimustel kasutame tsükleid, kui tahame mõnda koodi osa automatiseerida või soovime korrata käskude jada.
R silmuse jaoks R-s
Kui tahame nende aastate teavet välja printida rohkem kui üks kord.
print (kleebi ("Aasta on", 2000)) "Aasta on 2000" print (kleebi ("Aasta on", 2001)) "Aasta on 2001" print (kleebi ("Aasta on", 2002) ) "Aasta on 2002" print (kleebi ("Aasta on", 2003)) "Aasta on 2003" print (kleebi ("Aasta on", 2004)) "Aasta on 2004" print (kleebi (" Aasta on ", 2005))" Aasta on 2005 "
Selle asemel, et oma väidet korduvalt korrata, kui seda kasutame eest loop see on meie jaoks palju lihtsam. Nagu nii:
for (aasta c-s (2000,2001,2002,2003,2004,2005)) print (paste ("Aasta on", aasta)) "Aasta on 2000" "Aasta on 2001" "Aasta on 2002 "" Aasta on 2003 "" Aasta on 2004 "" Aasta on 2005 "
Roopis R-s
while (avaldis) lause
Kui avaldise tulemus on TÕENE, sisestatakse silmuse keha. Tsükli sees olevad avaldused viiakse läbi ja voog naaseb, et avaldist uuesti hinnata. Silmus kordub seni, kuni avaldise väärtuseks saab FALSE, sel juhul silmus väljub.
Näide aja Loop-st:
# i lähtestatakse algselt väärtuseks 0 i = 0, samas kui (i<5) print (i) i=i+1 Output: 0 1 2 3 4
Ülaltoodud while loopis on väljend i<5mis mõõdab TÕENE, kuna 0 on väiksem kui 5. Seega täidetakse silmuse keha ja i on väljund ja suurendatud. Tähtis on suurendada i silmuse sees, nii et see vastab mingil hetkel tingimusele. Järgmises tsüklis väärtus i on 1 ja silmus jätkub. See kordub kuni i võrdub 5-ga, kui tingimus 5<5 reached loop will give FALSE and the while loop will exit.
R funktsioonid
Et luua a funktsioon me kasutame direktiivi funktsiooni (). Täpsemalt, need on klassi R objektid funktsioon.
f <- function() ##some piece of instructions
Funktsioonid võidakse edastada teistele funktsioonidele, kuna argumendid ja funktsioonid võivad olla pesastatud, et saaksite määrata funktsiooni teise funktsiooni sees.
Funktsioonidel võib soovi korral olla mõni nimega argument, millel on vaikeväärtused. Kui te ei soovi vaikeväärtust, saate selle väärtuseks seada NULL.
Mõned faktid R-funktsiooni argumentide kohta:
- Funktsiooni definitsioonis lubatud argumendid on formaalsed argumendid
- Funktsioon Formals võib anda tagasi funktsiooni kõigi formaalsete argumentide loendi
- Mitte iga funktsioonikõne R-s ei kasuta kõiki formaalseid argumente
- Funktsiooni argumentidel võivad olla vaikeväärtused või need võivad puududa
# Funktsiooni määratlemine: f <- function (x, y = 1, z = 2, s= NULL)
Sisseehitatud andmekogumiga logistilise regressioonimudeli loomine
The glm () funktsiooni kasutatakse R-s logistilise regressiooni sobitamiseks. funktsioon glm () sarnaneb lm () -ga, kuid glm () -il on mõned täiendavad parameetrid. Selle formaat näeb välja selline:
glm (X ~ Z1 + Z2 + Z3, perekond = binoom (link = "logit"), andmed = minu andmed)
X sõltub Z1, Z2 ja Z3 väärtustest. Mis tähendab, et Z1, Z2 ja Z3 on sõltumatud muutujad ja X on sõltuv. Funktsioon hõlmab täiendavat parameetrite perekonda ja sellel on väärtus binoom (link = "logit"), mis tähendab, et lingi funktsioon on logit ja regressioonimudeli tõenäosusjaotus on binoomne.
Oletame, et meil on näide õpilasest, kus ta saab sisseastumise kahe eksamitulemuse põhjal. Andmekomplekt sisaldab järgmisi üksusi:
- tulemus _1- tulemus-1 skoor
- tulemus _2- tulemus -2 skoor
- lubatud - 1, kui lubatakse, või 0, kui ei lubata
Selles näites on meil kaks väärtust 1, kui õpilane sai vastuvõtu ja 0, kui ta ei saanud vastuvõttu. Peame genereerima mudeli, et ennustada, et õpilane sai vastuvõtu või mitte,. Konkreetse probleemi korral loetakse vastuvõetavat sõltuvaks muutujaks, eksamit_1 ja eksamit2 sõltumatuks muutujaks. Selle mudeli jaoks on antud meie R-kood
> Mudel_1<-glm(admitted ~ result_1 +result_2, family = binomial("logit"), data=data)
Oletame, et meil on õpilasest kaks tulemust. Tulemus-1 65% ja tulemus-2 90%, nüüd prognoosime, et üliõpilane saab vastuvõtu või mitte, et hinnata õpilase tõenäosust sisseastumiseks, meie R-kood on järgmine:
> raamis<-data.frame(result_1=65,result_2=90) >ennustama (Model_1, in_frame, type = "response") Väljund: 0.9894302
Ülaltoodud väljund näitab tõenäosust vahemikus 0 kuni 1. Kui siis on see väiksem kui 0.5 tähendab see seda, et õpilane ei saanud sisseastumist. Selles olukorras on see FALSE. Kui see on suurem kui 0.5, loetakse tingimust tõeks, mis tähendab, et üliõpilane on saanud vastuvõtu. 0 ja 1 vahelise tõenäosuse ennustamiseks peame kasutama funktsiooni round ().
Selle R-kood on näidatud allpool:
> ümmargune (ennusta (Model_1, in_frame, type = "response")) [/ code] Väljund: 1
Üliõpilane saab vastuvõtu, kuna väljund on 1. Pealegi võime samal viisil ennustada ka teiste vaatluste jaoks.
Logistilise regressioonimudeli (hinded) kasutamine uute andmetega
Vajadusel saame mudeli faili salvestada. Meie rongimudeli R-kood näeb välja selline:
mudel <- glm(my_formula, family=binomial(link='logit'),data=model_set)
Selle mudeli saab salvestada:
salvesta (fail = "failinimi", the_file)
Faili saab kasutada pärast selle salvestamist, kasutades seda R-koodi rahu:
laadige (fail = "failinimi")
Mudeli rakendamiseks uutele andmetele saate kasutada seda koodirida:
model_set $ pred <- predict(the_model, newdata=model_set, type="response")
MÄRGE: Model_set ei saa määrata ühegi muutuja jaoks. Mudeli laadimiseks kasutame funktsiooni load (). Uued tähelepanekud ei muuda mudelis midagi. Mudel jääb samaks. Me kasutame vana mudeli abil ennustusi uute andmete kohta, et mitte midagi mudelis muuta.
Järeldus
Loodan, et olete näinud, kuidas R-i programmeerimine põhilisel viisil töötab ja kuidas saate masinõppe ja statistikakodeerimisega R-iga kiiresti tegutsema asuda.