Sissejuhatus funktsioonidesse R
Funktsioon on määratletud avalduste kogumina, mis on ette nähtud konkreetse loogilise ülesande täitmiseks ja täitmiseks. Funktsioon võtab selle ülesande täitmiseks mõned sisestusparameetrid, mida nimetatakse argumentideks. Funktsioonid aitavad koodi murda lihtsamateks tükkideks, korraldades seda loogiliselt, mida on kergem lugeda ja mõista. Selles teemas õpime tundma R funktsioone.
Kuidas kirjutada funktsioone R-s?
Funktsiooni kirjutamiseks R-s on siin süntaks:
Fun_name <- function (argument) (
Function body
)
Siin võib näha funktsioonispetsiifilist reserveeritud sõna, mida kasutatakse funktsioonis R määratlemiseks. Funktsioon sisestab argumendid. Funktsiooni keha on loogiliste avalduste kogum, mis täidetakse argumentidega ja seejärel tagastab väljundi. “Fun_name” on funktsioonile antud nimi, mille kaudu seda saab R programmis ükskõik kuhu kutsuda.
Vaatame näidet, mis on funktsiooni mõiste mõistmisel R selgem.
R-kood
Multi <- function(x, y) (
# function to print x multiply y
result <- x*y
print(paste(x, "Multiply", y, "is", result))
)
väljund:
Siin lõime funktsiooni nime “Multi”, mis võtab sisenditena kaks argumenti ja pakub korrutatud väljundi. Esimene argument on x ja teine argument on y. Nagu näete, oleme funktsiooni nimetanud mitmeks. Kui keegi soovib, saab siin argumendid seada ka vaikeväärtusele.
R-funktsioonide erinevad tüübid
Erinevad R-funktsioonid koos süntaksiga ja näited (sisseehitatud, matemaatika, statistiline jne)
1) sisseehitatud funktsioon -
Need on funktsioonid, mis kaasnevad R-ga konkreetse ülesande lahendamiseks, võttes sisendina argumendi ja andes antud sisendi põhjal väljundi. Räägime siin R olulistest üldistest funktsioonidest:
a) Sorteerimine: andmed võivad olla kasvavas või kahanevas järjekorras. Andmed võivad olla nii jätkuva muutuja kui ka teguri muutuja vektor.
Süntaks:
Selle parameetrite selgitus on järgmine:
- x: see on pideva muutuja või teguri muutuja vektor
- vähenev: selle saab seada kas tõeseks / valeks, et korraldust juhtida kas tõustes või laskudes. Vaikimisi on see FALSE`.
- viimane: kui vektoril on NA väärtused, kas see peaks jääma viimaseks või mitte
R-kood ja väljund:
Siin võib märgata, kuidas “NA” väärtused lõpuks joondatakse. Kuna meie parameeter na.last = True oli tõene.
b) Seq: see genereerib kahe järgneva numbri vahelise arvu jada.
Süntaks
Selle parameetrite selgitus on järgmine:
- alates, jada algus- ja lõppväärtus.
- poolt: suurendamine / vahe kahe järjestikuse numbri vahel
- length.out: jada vajalik pikkus.
- Koos: viitab pikkusele selle argumendi pikkusest
R-kood ja väljund:
Siin võib märgata, et genereeritud jada kasvab 2-ga, kuna poolt on defineeritud kui 2.
c) Toupper, tolower: kaks funktsiooni: toupper ja tolower on stringil rakendatavad funktsioonid, et muuta lausetes tähtede tähed.
R-kood ja väljund:
Võib märgata, kuidas tähtede juhtumid funktsiooni kasutamisel muutuvad.
d) Rnorm: see on sisseehitatud funktsioon, mis genereerib juhuslikke numbreid.
R-kood ja väljund:
Funktsioon rnorm võtab esimese argumendi, mis ütleb, mitu arvu tuleb genereerida.
e) Rep: See funktsioon kordab väärtust nii mitu korda, kui on täpsustatud.
R süntaks: rnorm (x, n)
Siin x tähistab replitseeritava väärtust ja n tähistab korduste arvu.
R-kood ja väljund:
f) Kleebi: See funktsioon on stringide ühendamiseks koos mõne konkreetse tähemärgiga nende vahel.
süntaks
paste(x, sep = “”, collapse = NULL)
R-kood
paste("fish", "water", sep=" - ")
R väljund:
Nagu näete, võime kleepida ka rohkem kui kaks stringi. Sep on see konkreetne märk, mille me stringide vahele lisasime. Vaikimisi on sep tühik.
Veel üks sarnane funktsioon on selline, mida kõik peaksid teadma, on paste0.
Funktsioon paste0 (x, y, ahendamine) toimib sarnaselt kleebi (x, y, sep = “”, ahenda)
Vaadake allolevat näidet:
Lihtsamalt öeldes: kokkuvõtte ja kleepimise kokkuvõte0
Paste0 on kiirem kui pasta, kui tegemist on stringide liitmisega ilma eraldajata. Kuna pasta otsib alati sõna "sep" ja mis on selles vaikimisi tühik.
g) Strsplit: see funktsioon jagab stringi. Vaatame lihtsaid juhtumeid:
h) Rbind: funktsioon rbind aitab vektoreid kammida sama arvu veergudega, üksteise kohal.
Näide
i) cbind: see ühendab vektorid sama arvu ridadega, kõrvuti.
Näide
Kui ridade arv ei kattu, leiate alloleva vea:
Nii cbind kui ka rbind aitavad andmete töötlemisel ja ümberkujundamisel.
2) matemaatika funktsioon -
R pakub mitmesuguseid matemaatikafunktsioone. Vaatame mõnda neist üksikasjalikult:
a) Sqrt: see funktsioon arvutab arvu või numbrilise vektori ruutjuure.
R-kood ja väljund:
Võib näha, kuidas arvutada arvu, keerulise arvu ja numbrilise vektori jada ruutjuur.
b) Exp: See funktsioon arvutab arvu või numbrilise vektori eksponentsiaalse väärtuse.
R-kood ja väljund:
c) Cos, Sin, Tan: Need on siin R rakendatud trigonomeetriafunktsioonid.
R-kood ja väljund:
d) Abs: See funktsioon tagastab arvu absoluutse positiivse väärtuse.
Nagu näete, tagastatakse arvu negatiivne või positiivne absoluutses vormis. Vaatame seda keeruka numbri jaoks:
e) Logi: arvu leidmiseks logaritmi leidmiseks.
Siin on näide, mida näidatakse allpool:
Siin saab paindlikkust baasi muutmiseks vastavalt nõudele.
f) Cumsum: See on matemaatiline funktsioon, mis annab kumulatiivsed summad. Siin on järgmine näide:
g) Cumprod: Nagu matemaatiline funktsioon cumsum, on ka cumprod, kus toimub kumulatiivne korrutamine.
Vaadake allolevat näidet:
h) Max, Min: See aitab teil leida numbrikomplekti maksimaalse / minimaalse väärtuse. Vaadake allpool sellega seotud näiteid:
i) lagi: lagi on matemaatiline funktsioon, mille tulemusel saadakse väikseim täisarv suurem kui täpsustatud.
Vaatame näidet:
lagi (2, 67)
Nagu võite märgata, rakendatakse ülemmäära nii arvule kui ka loendile ja väljund tuli järgmisest suuremast täisarvust väikseim.
j) Põrand: Põrand on matemaatiline funktsioon, mis tagastab määratud arvu väikseima täisarvu.
Allpool toodud näide aitab teil seda paremini mõista:
See töötab samamoodi ka negatiivsete väärtuste korral. Palun vaata:
3) statistilised funktsioonid -
Need on funktsioonid, mis kirjeldavad seotud tõenäosusjaotust.
a) mediaan: mediaan arvutati numbrite jadast.
Süntaks
R-kood ja väljund:
b) Dnorm: See viitab normaaljaotusele. Funktsioon dnorm tagastab tõenäosustiheduse funktsiooni väärtuse normaaljaotuse korral x, μ ja σ parameetrite korral.
R-kood ja väljund:
c) Cov: Kovariatsioon näitab, kas kaks vektorit on positiivselt, negatiivselt või täielikult mitteseotud.
R-kood
x_new = c(1., 5.5, 7.8, 4.2, -2.7, -5.5, 8.9)
y_new = c(0.1, 2.0, 0.8, -4.2, 2.7, -9.4, -1.9)
cov(x_new, y_new)
R väljund:
Nagu näete, on kaks vektorit positiivselt seotud, mis tähendab, et mõlemad vektorid liiguvad samas suunas. Kui kovariatsioon on negatiivne, tähendab see, et x ja y on pöördvõrdeliselt seotud ja liiguvad seega vastupidises suunas.
d) Cor: See on funktsioon vektorite vahelise korrelatsiooni leidmiseks. See annab tegelikult kahe vektori vahelise seosefaktori, mida nimetatakse korrelatsioonikoefitsiendiks. Korrelatsioon lisab kovariatsiooni suhtes kraaditeguri. Kui kaks vektorit on positiivses korrelatsioonis, näitab korrelatsioon teile ka seda, kui suure laiendiga need on positiivselt seotud.
Need kolm tüüpi meetodeid, mida saab kasutada kahe vektori vahelise korrelatsiooni leidmiseks:
- Pearsoni korrelatsioon
- Kendalli korrelatsioon
- Spearmani korrelatsioon
Lihtsas R-vormingus näeb see välja järgmine:
cor(x, y, method = c("pearson", "kendall", "spearman"))
Siin x ja y on vektorid.
Vaatame sisseehitatud andmestiku korrelatsiooni praktilist näidet.
Niisiis, siin näete funktsiooni “cor ()”, mis andis korrelatsioonikordaja 0, 41 vahemikus “qsec” ja “mpg”. Kuid esitleti on veel üks funktsioon, st “cor.test ()”, mis ei näita ainult korrelatsioonikordajat, vaid ka sellega seotud p-väärtust ja t-väärtust. Tõlgendamine on Cor.test funktsiooni abil palju lihtsam.
Sarnast saab teha ka kahe muu korrelatsioonimeetodiga:
Pearsoni meetodi R-kood:
my_data <- mtcars
cor(my_data$qsec, my_data$mpg, method = " pearson ")
cor.test(my_data$qsec, my_data$mpg, method = " pearson")
Kendalli meetodi R-kood:
my_data <- mtcars
cor(my_data$qsec, my_data$mpg, method = " kendall")
cor.test(my_data$qsec, my_data$mpg, method = " kendall")
Spearmani meetodi R-kood:
my_data <- mtcars
cor(my_data$qsec, my_data$mpg, method = "spearman")
cor.test(my_data$qsec, my_data$mpg, method = "spearman")
Korrelatsioonikordaja jääb vahemikku -1 ja 1.
Kui korrelatsioonikordaja on negatiivne, tähendab see seda, et x suureneb, kui y väheneb.
Kui korrelatsioonikordaja on null, tähendab see, et x ja y vahel pole seost.
Kui korrelatsioonikordaja on positiivne, siis tähendab see ka seda, kui x suureneb, kipub ka y suurenema.
e) T-test: T-test annab teada, kas kaks andmekogumit pärinevad samast (eeldades) normaaljaotusest või mitte.
Siinkohal tuleks tagasi lükata nullhüpotees, et kaks keskmist on võrdsed, kuna p-väärtus on väiksem kui 0, 05.
See näidatud näide on tüüpi: paarimata andmekogumid ebavõrdse dispersiooniga. Samamoodi saab proovida seotud andmestikuga.
f) lihtne lineaarne regressioon: see näitab suhet ennustaja / sõltumatu ja reageeringu / sõltuva muutuja vahel.
Lihtne praktiline näide võiks olla inimese kaalu ennustamine, kui pikkus on teada.
R süntaks
lm(formula, data)
Valem kujutab siin seost väljundi st y ja sisendmuutuja st iex vahel. Andmed tähistavad andmekogumit, millele valemit tuleb rakendada.
Vaatame ühte praktilist näidet, kus sisendmuutujaks on põrandapind ja väljundmuutujaks rent.
x <-c (1510, 1000, 600, 500, 1280, 136, 1790, 1630)
y <-c (15000, 10000, 6000, 5000, 12800, 13600, 17900, 16300)
Siin on P-väärtus vähemalt 5%. Seetõttu ei saa nullhüpoteesi tagasi lükata. Põrandapinna ja üüri vahelise seose tõestamiseks pole palju tähtsust.
R-ruudu väärtus on siin 0, 4813. See tähendab, et ainult 48% väljundmuutuja dispersioonist on seletatav sisendmuutujaga.
Ütleme nüüd, et peame ülaltoodud mudeli põhjal ennustama põrandapinna väärtust.
R-kood
x_new <- data.frame(x = 1700)
result <- predict(relation, x_new)
print(result)
R väljund:
Pärast ülaltoodud R-koodi täitmist näeb väljund välja järgmine:
Regressiooni saab sobitada ja visualiseerida. Siin on selle R-kood:
# Pange png-diagrammi failile nimi.
png(file = "LinearRegressionSample.png.webp")
# Joonista diagramm.
plot(y, x, col = "green", main = "Floor Area & Rent Regression",
abline(lm(x~y)), cex = 1.3, pch = 16, xlab = "Floor area in sq m", ylab = "Rent in Rs")
# Salvestage fail.
dev.off()
See graafik „LinearRegressionSample.png.webp” genereeritakse teie praeguses töökataloogis.
g) Chi-Square'i test
See on statistiline funktsioon R-is. See test omab olulisust tõestamaks, kas korrelatsioon on olemas kahe kategoorilise muutuja vahel.
See test töötab ka nagu kõik muud statistilised testid, mis põhinesid p-väärtusel, nullhüpoteesi võib heaks kiita või tagasi lükata.
R süntaks
chisq.test(data), /code>
Vaatame selle ühe praktilise näite.
R-kood
# Laadige raamatukogu.
library(datasets)
data(iris)
# Looge põhiandmekogumist andmeraam.
iris.data <- data.frame(iris$Sepal.Length, iris$Sepal.Width)
# Koostage tabel vajalike muutujatega.
iris.data = table(iris$Sepal.Length, iris$Sepal.Width)
print(iris.data)
# Tehke Chi-Square'i test.
print(chisq.test(iris.data))
R väljund:
Nagu näha, on chi-square test tehtud iirise andmekogumiga, arvestades selle kahte muutujat “Sepal. Pikkus ”ja“ Sepal.Laius ”.
P-väärtus ei ole väiksem kui 0, 05, seega nende kahe muutuja vahel korrelatsiooni ei eksisteeri. Või võime öelda, et need kaks muutujat ei sõltu üksteisest.
Järeldus
R funktsioonid on lihtsad, hõlpsasti paigaldatavad, hõlpsasti haaratavad ja samas väga võimsad. Nägime R-is mitmesuguseid funktsioone, mida kasutatakse põhitõdedena. Kui need ülaltoodud funktsioonid on rahul, saab uurida muid funktsioone. Funktsioonid aitavad teil muuta koodi lihtsaks ja kokkuvõtlikuks käivitamiseks. Funktsioonid võivad olla sisseehitatud või kasutaja määratletud, kõik sõltub probleemiga tegelemise vajadusest. Funktsioonid annavad programmile hea kuju.
Soovitatavad artiklid
See on juhend funktsioonidest R-s. Siin arutleme, kuidas kirjutada funktsioone R-s ja erinevaid funktsioone R-s süntaksi ja näidete abil. Lisateabe saamiseks võite vaadata ka järgmist artiklit -
- R keelte funktsioonid
- SQL-stringi funktsioonid
- T-SQL stringifunktsioonid
- PostgreSQL stringifunktsioonid