Kompilering og kjøring av R fra kommandolinjen
De to måtene å kjøre R-programmer på er: et R-skript, som er mye brukt og er mest foretrukket, og det andre er R CMD BATCH, det er ikke en vanlig kommando. Vi kan ringe dem direkte fra kommandolinjen eller hvilken som helst annen jobbplanlegger.
Du kan tenkes å ringe disse kommandoene fra et skall innebygd i IDE, og i dag kommer RStudio IDE med verktøy som forbedrer eller administrerer R-skriptet og R CMD BATCH-funksjonene.
kilde () -funksjon i R er et godt alternativ til å bruke kommandolinjen. Denne funksjonen kan også kalle et skript, men for å bruke denne funksjonen, må du være inne i R-miljøet.
R Språk Innebygde datasett
For å liste datasettene som er innebygd med R, bruk data () -kommandoen, finn deretter det du vil, og bruk navnet på datasettet i data () -funksjonen. Like data (funksjonsnavn).
Vis datasett i R
Spørsmålstegnet (?) kan brukes til å be om hjelp til datasett.
For å sjekke for alt bruk sammendrag ().
Plot () er også en funksjon som brukes til å plotte grafer.
La oss lage et testskript og kjøre det. Skape p1.R fil og lagre den hjemmekatalogen med følgende innhold:
Kodeeksempel:
# Enkel hallo verdenskode i R-utskrift ("Hello World!") print (" LinuxHint ") print (5 + 6)
Kjører Hello World
R datarammer
For å lagre data i tabeller bruker vi en struktur i R kalt a Dataramme. Den brukes til å liste opp vektorer med samme lengde. For eksempel er følgende variabel nm en dataramme som inneholder tre vektorer x, y, z:
x = c (2, 3, 5) y = c ("aa", "bb", "cc") z = c (SANN, FALSK, SANT) # nm er en dataramme nm = data.ramme (n, s, b)
Det er et konsept som heter InnebygdDatarammer i R også. mtcars er en slik innebygd dataramme i R, som vi vil bruke som et eksempel, for vår bedre forståelse. Se koden nedenfor:
> 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 bulitin dataframe
Overskriften er den øverste linjen i tabellen som inneholder kolonnenavnene. Datarader doneres av hver horisontale linje; hver linje starter med navnet på raden og deretter etterfulgt av de faktiske dataene. Datamedlemmet på en rad betegnes som en celle.
Vi ville angi rad- og kolonnekoordinatene i en enkelt firkantet parentes '[]' operator for å hente data i en celle. For å skille koordinatene bruker vi komma. Bestillingen er viktig. Koordinaten begynner med rad og deretter komma og slutter deretter med kolonnen. Celleverdi på 2nd rad og 1St kolonnen er gitt som:
> biler [2, 2] [1] 6
Vi kan også bruke rad- og kolonnenavn i stedet for koordinater:
> mtcars ["Bus RX4", "mpg"] [1] 6
nrow-funksjonen brukes til å finne antall rader i datarammen.
> nrow (mtcars) # antall datarader [1] 32
ncol-funksjonen brukes til å finne antall kolonner i en dataramme.
> ncol (mtcars) # antall kolonner [1] 11
R Programmering av sløyfer
Under noen forhold bruker vi sløyfer når vi vil automatisere en del av koden, eller vi vil gjenta en rekke instruksjoner.
For løkke i R
Hvis vi ønsker å skrive ut informasjon om disse årene mer enn en gang.
trykk (lim inn ("Året er", 2000)) "Året er 2000" trykk (lim inn ("Året er", 2001)) "Året er 2001" trykk (lim inn ("Året er", 2002) ) "Året er 2002" trykk (lim inn ("Året er", 2003)) "Året er 2003" trykk (lim inn ("Året er", 2004)) "Året er 2004" trykk (lim inn (" Året er ", 2005))" Året er 2005 "
I stedet for å gjenta uttalelsen igjen og igjen hvis vi bruker til loop det vil være mye lettere for oss. Som dette:
for (år i c (2000,2001,2002,2003,2004,2005)) print (lim inn ("Året er", år)) "Året er 2000" "Året er 2001" "Året er 2002 "" Året er 2003 "" Året er 2004 "" Året er 2005 "
Mens Loop i R
mens (uttrykk) uttalelse
Hvis resultatet av uttrykket er SANT, blir kroppen til sløyfen angitt. Uttalelsene inne i sløyfen utføres, og flyten kommer tilbake for å vurdere uttrykket igjen. Sløyfen vil gjenta seg til uttrykket evalueres til FALSE, i hvilket tilfelle sløyfen går ut.
Eksempel på while Loop:
# i ble initialisert til 0 i = 0 mens (i<5) print (i) i=i+1 Output: 0 1 2 3 4
I den ovennevnte mens loop er uttrykket Jeg<5som måler å SANT siden 0 er mindre enn 5. Derfor blir løkkenes kropp utført, og Jeg blir sendt ut og inkrementert. Det er viktig å øke Jeg inne i løkken, slik at den på en eller annen måte vil oppfylle betingelsen på et tidspunkt. I neste sløyfe, verdien av Jeg er 1, og løkken fortsetter. Det vil gjenta seg til Jeg er lik 5 når tilstanden 5<5 reached loop will give FALSE and the while loop will exit.
R Funksjoner
Å lage en funksjon vi bruker direktivfunksjon (). Spesielt er de R-objekter i klassen funksjon.
f <- function() ##some piece of instructions
Spesielt kan funksjoner overføres til andre funksjoner ettersom argumenter og funksjoner kan nestes, slik at du kan bestemme en funksjon inne i en annen funksjon.
Funksjoner kan valgfritt ha noen navngitte argumenter som har standardverdier. Hvis du ikke vil ha en standardverdi, kan du sette verdien til NULL.
Noen fakta om R-funksjonsargumenter:
- Argumentene som er tillatt i funksjonsdefinisjonen er de formelle argumentene
- Formalsfunksjonen kan gi en liste over alle de formelle argumentene til en funksjon
- Ikke alle funksjonsanrop i R bruker alle formelle argumenter
- Funksjonsargumenter kan ha standardverdier, eller de kan mangle
# Definere en funksjon: f <- function (x, y = 1, z = 2, s= NULL)
Opprette en logistisk regresjonsmodell med innebygd datasett
De glm () funksjonen brukes i R for å passe til den logistiske regresjonen. glm () -funksjonen ligner på lm (), men glm () har noen tilleggsparametere. Dens format ser slik ut:
glm (X ~ Z1 + Z2 + Z3, familie = binomial (link = ”logit”), data = mydata)
X er avhengig av verdiene til Z1, Z2 og Z3. Hvilket betyr at Z1, Z2 og Z3 er uavhengige variabler og X er avhengig Funksjon involverer ekstra parameterfamilie og den har verdibinom (link = “logit”) som betyr at lenkefunksjon er logit og sannsynlighetsfordelingen av regresjonsmodell er binom.
Anta at vi har et eksempel på student der han vil få opptak på grunnlag av to eksamensresultater. Datasettet inneholder følgende elementer:
- resultat _1- Resultat-1-poengsum
- resultat _2- Resultat -2 poengsum
- innlagt- 1 hvis innlagt eller 0 hvis ikke innlagt
I dette eksemplet har vi to verdier 1 hvis en student fikk opptak og 0 hvis han ikke fikk opptak. Vi må generere en modell for å forutsi at studenten har fått opptak eller ikke,. For et gitt problem betraktes innrømmet som en avhengig variabel, exam_1 og exam_2 betraktes som uavhengige variabler. For den modellen er vår R-kode gitt
> Model_1<-glm(admitted ~ result_1 +result_2, family = binomial("logit"), data=data)
La oss anta at vi har to resultater av studenten. Resultat-1 65% og resultat-2 90%, nå vil vi forutsi at studenten får opptak eller ikke for å estimere sannsynligheten for at studenten får opptak, vår R-kode er som nedenfor:
> in_frame<-data.frame(result_1=65,result_2=90) >forutsi (Model_1, in_frame, type = "respons") Utgang: 0.9894302
Ovennevnte utgang viser oss sannsynligheten mellom 0 og 1. Hvis det er mindre enn 0.5 betyr det at studenten ikke fikk opptak. I denne tilstanden vil den være FALSK. Hvis den er større enn 0.5, vil tilstanden bli betraktet som SANT, noe som betyr at studenten har fått opptak. Vi må bruke round () -funksjonen for å forutsi sannsynlighet mellom 0 og 1.
R-koden for det er som vist nedenfor:
> runde (forutsi (Model_1, in_frame, type = "respons")) [/ code] Utgang: 1
En student vil få opptak ettersom resultatet er 1. Videre kan vi også forutsi andre observasjoner på samme måte.
Bruker logistisk regresjonsmodell (scoring) med nye data
Ved behov kan vi lagre modellen i en fil. R-kode for togmodellen vår vil se slik ut:
modellen <- glm(my_formula, family=binomial(link='logit'),data=model_set)
Denne modellen kan lagres med:
lagre (file = "filename", the_file)
Du kan bruke filen etter å ha lagret den, ved å bruke den fred av R-koden:
last (fil = "filnavn")
For å bruke modellen for nye data kan du bruke denne linjen med en kode:
modell_sett $ pred <- predict(the_model, newdata=model_set, type="response")
MERK: Model_set kan ikke tilordnes noen variabel. For å laste en modell vil vi bruke funksjonsbelastningen (). Nye observasjoner vil ikke endre noe i modellen. Modellen vil forbli den samme. Vi bruker den gamle modellen til å spå om de nye dataene for ikke å endre noe i modellen.
Konklusjon
Jeg håper du har sett hvordan R-programmering fungerer på en grunnleggende måte og hvordan du raskt kan komme i gang med maskinlæring og statistikk koding med R.