Uvod u funkcije u R
Funkcija je definirana kao skup iskaza, za izvršavanje i izvršavanje bilo kojeg određenog logičkog zadatka. Funkcija uzima neke ulazne parametre koji su poznati kao argumenti za izvršavanje tog zadatka. Funkcije pomažu u razbijanju koda, u jednostavnije dijelove logičkim orkestriranjem, što je lakše za čitanje i razumijevanje. U ovoj ćemo temi saznati o Funkcijama u R.
Kako napisati funkcije u R?
Da biste funkciju upisali u R, ovdje je sintaksa:
Fun_name <- function (argument) (
Function body
)
Ovdje se može vidjeti "funkcija" specifična rezervirana riječ koja se koristi u R za definiranje bilo koje funkcije. Funkcija uzima ulaz koji je u obliku argumenata. Tijelo funkcije je skup logičkih izjava koje se izvode preko argumenata i tada vraća izlaz. "Fun_name" naziv je funkcije koja se može pozivati bilo gdje u R programu.
Pogledajmo primjer koji će biti lucidniji u razumijevanju koncepta funkcije u R.
R kod
Multi <- function(x, y) (
# function to print x multiply y
result <- x*y
print(paste(x, "Multiply", y, "is", result))
)
izlaz:
Ovdje smo stvorili naziv funkcije “Multi”, koji uzima dva argumenta kao ulaza i pruža multiplicirani izlaz. Prvi argument je x, a drugi argument y. Kao što vidite, funkciju smo nazvali imenom "Multi". Ovdje, ako netko želi, argumenti se mogu postaviti i na zadanu vrijednost.
Različite vrste funkcija u R
Različite R funkcije sa sintaksom i primjerima (ugrađeni, matematički, statistički itd.)
1) Ugrađena funkcija -
Ovo su funkcije koje dolaze s R za rješavanje određenog zadatka uzimajući argument kao ulaz i dajući izlaz na temelju danog ulaza. Ovdje ćemo razgovarati o nekim važnim općim funkcijama R:
a) Poredaj: Podaci mogu biti sortirani uzlaznim ili silaznim redoslijedom. Podaci mogu biti da li je vektor kontinuirane varijable ili faktorska varijabla.
Sintaksa:
Evo objašnjenja njegovih parametara:
- x: ovo je vektor kontinuirane varijable ili faktorske varijable
- opadajući: ovo se može postaviti ili True / False da bi upravljali redoslijedom uzlazno ili silazno. Prema zadanim postavkama to je FALSE`.
- zadnji: Ako vektor ima NA vrijednosti, treba ga staviti zadnji ili ne
R kod i izlaz:
Ovdje se može primijetiti kako se "NA" vrijednosti poravnavaju na kraju. Kako je bio naš parametar na.last = True.
b) Seq: Stvara niz od broja između dva navedena broja.
Sintaksa
Evo objašnjenja njegovih parametara:
- od, za početnu i krajnju vrijednost niza.
- po: Povećanje / razmak između dva uzastopna broja u nizu
- length.out: potrebna duljina niza.
- Along.with: Odnosi se na duljinu od duljine ovog argumenta
R kod i izlaz:
Ovdje se može primijetiti da se niz koji nastaje ima porast od 2, jer je definiran kao 2.
c) Toupper, tolower: Dvije funkcije: toupper i tolower su funkcije primijenjene na nizu za promjenu velikih slova slova u rečenicama.
R kod i izlaz:
Može se primijetiti kako se slučajevi slova mijenjaju kad se primijene na funkciju.
d) Rnorm: Ovo je ugrađena funkcija koja generira slučajne brojeve.
R kod i izlaz:
Funkcija rnorm uzima prvi argument koji kaže koliko brojeva treba generirati.
e) Ponovno: ova funkcija ponavlja vrijednost onoliko puta koliko je specificirano.
R sintaksa: rnorm (x, n)
Ovdje x predstavlja vrijednost za repliciranje, a n predstavlja koliko puta treba ponoviti.
R kod i izlaz:
f) Lijepljenje: Ova je funkcija spojiti nizove zajedno s nekim posebnim znakom između.
sintaksa
paste(x, sep = “”, collapse = NULL)
R kod
paste("fish", "water", sep=" - ")
R izlaz:
Kao što vidite, možemo zalijepiti i više od dvije žice. Sep je onaj specifičan lik koji smo dodali između žice. Po sep, sep je prostor.
Postoji još jedna slična funkcija poput ove, koje bi svi trebali biti svjesni, da je paste0.
Funkcija paste0 (x, y, kolaps) djeluje slično zalijepljenju (x, y, sep = "", kolaps)
Pogledajte primjer u nastavku:
Jednostavnim riječima, da sažeti paste i paste0:
Paste0 je brži od paste kada je u pitanju spajanje žica bez ikakvog separatora. Kako paste uvijek traže "sep", a u njemu je zadani prostor.
g) Strsplit: Ova funkcija je za razdvajanje niza. Pogledajmo jednostavne slučajeve:
h) Spuštanje: Funkcija rbind pomaže u češanju vektora s istim brojem stupaca, jedan nad drugim.
Primjer
i) cbind: kombinira vektore s istim brojem redova, jedan pored drugog.
Primjer
U slučaju da se broj redaka ne podudara, ispod je pogreška koju ćete naći:
I cbind i rbind pomažu u manipulaciji i preoblikovanjem podataka.
2) Math funkcija -
R pruža širok izbor matematičkih funkcija. Pogledajmo nekoliko njih detaljno:
a) Sqrt: Ova funkcija izračunava kvadratni korijen broja ili numeričkog vektora.
R kod i izlaz:
Može se vidjeti kako se izračunava korijen broja, složenog broja i niza numeričkih vektora.
b) Exp: Ova funkcija izračunava eksponencijalnu vrijednost broja ili numeričkog vektora.
R kod i izlaz:
c) Cos, Sin, Tan: Ovo su funkcije trigonometrije implementirane u R ovdje.
R kod i izlaz:
d) Abs: Ova funkcija vraća apsolutnu pozitivnu vrijednost broja.
Kao što vidite, negativan ili pozitivan broj bit će vraćen u svom apsolutnom obliku. Pogledajmo ga za složen broj:
e) Zapisnik: Ovo je pronalazak logaritma broja.
Evo primjera prikazanog u nastavku:
Ovdje se postiže fleksibilnost za promjenu baze, prema zahtjevima.
f) Cumsum: Ovo je matematička funkcija koja daje kumulativne zbrojeve. Evo primjera u nastavku:
g) Cumprod: Kao i Cumsumova matematička funkcija, imamo i cumprod tamo gdje se događa kumulativno množenje.
Pogledajte primjer u nastavku:
h) Max, Min: Ovo će vam pomoći da pronađete maksimalnu / minimalnu vrijednost u skupu brojeva. Pogledajte dolje primjere povezane s tim:
i) Strop: Strop je matematička funkcija vraća najmanji od cijelog broja veći od navedenog.
Pogledajmo primjer:
strop (2, 67)
Kao što možete primijetiti, strop se primjenjuje na određeni broj kao i na popisu, a ishodni rezultat najmanji je od sljedećeg višeg broja.
j) Pod: Pod: matematička funkcija vraća cijeli broj s najmanjom vrijednošću od navedenog broja.
Primjer prikazan u nastavku pomoći će vam da to bolje razumijete:
Djeluje na isti način i za negativne vrijednosti. Molim te pogledaj:
3) Statističke funkcije -
Ovo su funkcije koje opisuju povezanu distribuciju vjerojatnosti.
a) Medijan: Izračunala je medijanu iz niza brojeva.
Sintaksa
R kod i izlaz:
b) dnorma: odnosi se na normalnu raspodjelu. Funkcija dnorm vraća vrijednost funkcije gustoće vjerojatnosti, za normalnu raspodjelu zadanih parametara za x, μ i σ.
R kod i izlaz:
c) Cov: Kovarijancija govori jesu li dva vektora pozitivno, negativno ili potpuno povezana.
R kod
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 izlaz:
Kao što vidite, dva vektora su pozitivno povezana, što znači da se oba vektora kreću u istom smjeru. Ako je kovarijancija negativna, to znači da su x i y obrnuto povezane i stoga se kreće u suprotnom smjeru.
d) Cor: Ovo je funkcija za pronalaženje povezanosti između vektora. Zapravo daje faktor asocijacije između dva vektora koji je poznat i kao "koeficijent korelacije". Korelacija dodaje faktor stupnja u odnosu na kovarijanciju. Ako su dva vektora pozitivno povezana, korelacija će vam također reći koliko su oni pozitivno povezani.
Ove tri vrste metoda pomoću kojih se može pronaći povezanost između dva vektora:
- Pearsonova korelacija
- Kendall korelacija
- Spearmanova korelacija
U jednostavnom R formatu izgleda:
cor(x, y, method = c("pearson", "kendall", "spearman"))
Ovdje su x i y vektori.
Pogledajmo praktični primjer korelacije preko ugrađenog skupa podataka.
Dakle, ovdje možete vidjeti funkciju "cor ()" dajući koeficijent korelacije 0, 41 između "qsec" i "mpg". Međutim, prikazana je još jedna funkcija, tj. "Cor.test ()", koja ne samo da govori koeficijent korelacije, već i p-vrijednost i t vrijednost koja je s njim povezana. Interpretacija postaje daleko lakša pomoću funkcije cor.test.
Slično se može učiniti s druge dvije metode korelacije:
R kod Pearsonove metode:
my_data <- mtcars
cor(my_data$qsec, my_data$mpg, method = " pearson ")
cor.test(my_data$qsec, my_data$mpg, method = " pearson")
R kod za Kendall metodu:
my_data <- mtcars
cor(my_data$qsec, my_data$mpg, method = " kendall")
cor.test(my_data$qsec, my_data$mpg, method = " kendall")
R kod za Spearmanovu metodu:
my_data <- mtcars
cor(my_data$qsec, my_data$mpg, method = "spearman")
cor.test(my_data$qsec, my_data$mpg, method = "spearman")
Koeficijent korelacije se kreće između -1 i 1.
Ako je koeficijent korelacije negativan, to znači kad se x povećava y smanjuje.
Ako je koeficijent korelacije jednak nuli, to znači da ne postoji povezanost između x i y.
Ako je koeficijent korelacije pozitivan, to podrazumijeva kada se x povećava y također se povećava.
e) T-test: T-test će vam reći da li dva skupa podataka dolaze iz iste (pod pretpostavkom) normalne distribucije ili ne.
Ovdje biste trebali odbaciti nultu hipotezu da su dva sredstva jednaka jer je p-vrijednost manja od 0, 05.
Ova prikazana instanca je tipa: parni skupovi podataka s nejednakim odstupanjima. Slično se može pokušati i s uparenim nizom podataka.
f) Jednostavna linearna regresija: To pokazuje odnos između predviđanja / neovisne i varijable / ovisnosti o odgovoru.
Jednostavnim praktičnim primjerom moglo bi se predvidjeti težinu osobe ako se zna visina.
R sintaksa
lm(formula, data)
Ovdje formula prikazuje odnos izlaza tj. Y i ulazne varijable, tj. Podaci predstavljaju skup podataka na koji se formula mora primijeniti.
Pogledajmo jedan praktični primjer, gdje je površina poda ulazna varijabla, a najam je izlazna varijabla.
x <- c (1510, 1000, 600, 500, 1280, 136, 1790., 1630.)
y <- c (15000, 10000, 6000, 5000, 12800, 13600, 17900, 16300)
Ovdje P-vrijednost nije manja od 5%. Stoga se ništavna hipoteza ne može odbaciti. Nema mnogo značenja za dokazivanje odnosa između površine poda i najamnine.
Ovdje je vrijednost R-kvadrata 0, 4813. To znači da samo 48% varijance izlazne varijable može se objasniti ulaznom varijablom.
Recimo sada da trebamo predvidjeti vrijednost površine poda, na temelju gore postavljenog modela.
R kod
x_new <- data.frame(x = 1700)
result <- predict(relation, x_new)
print(result)
R izlaz:
Nakon izvršenja gornjeg R koda, izlaz će izgledati sljedeće:
Može se uklopiti i vizualizirati regresiju. Evo R koda za to:
# Dajte ime datoteci png grafikona.
png(file = "LinearRegressionSample.png.webp")
# Nacrtajte grafikon.
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")
# Spremite datoteku.
dev.off()
Ovaj će se grafikon "LinearRegressionSample.png.webp" generirati u vašem trenutnom radnom direktoriju.
g) Chi-Square test
Ovo je statistička funkcija u R. Ovaj test ima svoj značaj da bi dokazao postoji li povezanost između dvije kategorijske varijable.
Ovaj test također djeluje kao i bilo koji drugi statistički testovi temeljeni na vrijednosti p, može se prihvatiti ili odbaciti nulta hipoteza.
R sintaksa
chisq.test(data), /code>
Pogledajmo jedan praktični primjer toga.
R kod
# Učitajte knjižnicu.
library(datasets)
data(iris)
# Stvorite podatkovni okvir iz glavnog skupa podataka.
iris.data <- data.frame(iris$Sepal.Length, iris$Sepal.Width)
# Stvorite tablicu s potrebnim varijablama.
iris.data = table(iris$Sepal.Length, iris$Sepal.Width)
print(iris.data)
# Izvršite test Chi-Square.
print(chisq.test(iris.data))
R izlaz:
Kao što se može vidjeti, test chi-kvadrat izveden je nad skupom irisa, s obzirom na njegove dvije varijable „Sepal. Duljina "i" Sepal.Širina ".
P-vrijednost nije manja od 0, 05, te stoga ne postoji korelacija između ove dvije varijable. Ili možemo reći da ove dvije varijable ne ovise jedna o drugoj.
Zaključak
Funkcije u R-u jednostavne su, lako se postavljaju, lako se razumiju i vrlo su moćne. Vidjeli smo različite funkcije koje se kao dio osnova koriste u R. Kada se netko ugodi ovim gore opisanim funkcijama, može se istražiti druge vrste funkcija. Funkcije vam pomažu, a kôd se pokreće na jednostavan i sažet način. Funkcije mogu biti ugrađene ili definirane korisnikom, a sve ovisi o potrebi rješavanja problema. Funkcije programu daju dobru formu.
Preporučeni članci
Ovo je vodič za Funkcije u R. Ovdje smo raspravljali o načinu pisanja funkcija u R i različitih vrsta funkcija u R sa sintaksom i primjerima. Možete pogledati i sljedeći članak da biste saznali više -
- R string funkcije
- Funkcije stringova SQL
- Funkcije niza T-SQL-a
- PostgreSQL string string funkcije