Úvod do funkcií v R
Funkcia je definovaná ako množina príkazov na vykonávanie a vykonávanie akejkoľvek konkrétnej logickej úlohy. Funkcia vykonáva niektoré vstupné parametre, ktoré sú známe ako argumenty na vykonanie tejto úlohy. Funkcie pomáhajú rozbiť kód na jednoduchšie kúsky logickým usporiadaním, čo je ľahšie čitateľné a zrozumiteľné. V tejto téme sa dozvieme o funkciách v R.
Ako písať funkcie v R?
Na napísanie funkcie v R je tu syntax:
Fun_name <- function (argument) (
Function body
)
Tu je vidieť, že v R sa používa špecifické vyhradené slovo „funkcia“ na definovanie akejkoľvek funkcie. Funkcia berie vstup, ktorý má formu argumentov. Telo funkcie je množina logických príkazov, ktoré sa vykonávajú nad argumentmi a potom vracia výstup. „Fun_name“ je názov priradený funkcii, prostredníctvom ktorej sa dá volať kdekoľvek v programe R.
Pozrime sa na príklad, ktorý bude prehľadnejší v chápaní pojmu funkcia v R.
R kód
Multi <- function(x, y) (
# function to print x multiply y
result <- x*y
print(paste(x, "Multiply", y, "is", result))
)
výkon:
Tu sme vytvorili názov funkcie „Multi“, ktorý berie ako argument dva argumenty a poskytuje vynásobený výstup. Prvý argument je x a druhý argument je y. Ako vidíte, túto funkciu sme nazvali názvom „Multi“. Tu, ak chce niekto, môžu byť argumenty nastavené aj na predvolenú hodnotu.
Rôzne typy funkcií v R
Rôzne funkcie R so syntaxou a príkladmi (vstavaný, matematický, štatistický atď.)
1) Vstavaná funkcia -
Toto sú funkcie, ktoré prichádzajú s R na vyriešenie konkrétnej úlohy tým, že argument berú ako vstup a poskytujú výstup založený na danom vstupe. Poďme diskutovať o niektorých dôležitých všeobecných funkciách R tu:
a) Zoradiť: Údaje môžu byť usporiadané vzostupne alebo zostupne. Dáta môžu byť, či je vektor premennej Continuous alebo factor.
syntaxe:
Tu je vysvetlenie jeho parametrov:
- x: Toto je vektor spojitej alebo faktorovej premennej
- zostupne: Toto môže byť nastavené na hodnotu True / False na ovládanie poradia vzostupne alebo zostupne. V predvolenom nastavení je FALSE`.
- last: Ak má vektor NA hodnoty, mal by byť uvedený ako posledný alebo nie
R kód a výstup:
Tu si môžete všimnúť, ako sa hodnoty „NA“ na konci vyrovnajú. Pretože náš parameter na.last = True bol pravdivý.
b) Seq: Generuje postupnosť čísla medzi dvoma určenými číslami.
syntax
Tu je vysvetlenie jeho parametrov:
- od, do začiatočnej a konečnej hodnoty sekvencie.
- podľa: Prírastok / medzera medzi dvoma po sebe nasledujúcimi číslami
- length.out: požadovaná dĺžka sekvencie.
- Along.with: Vzťahuje sa na dĺžku od dĺžky tohto argumentu
R kód a výstup:
Tu si môžeme všimnúť, že vygenerovaná sekvencia má prírastok 2, pretože podľa je definovaná ako 2.
c) Toupper, tolower: Dve funkcie: toupper a tolower sú funkcie aplikované na reťazec na zmenu veľkosti písmen vo vetách.
R kód a výstup:
Je možné si všimnúť, ako sa pri použití funkcie zmenili prípady písmen.
d) Rnorm: Toto je vstavaná funkcia, ktorá generuje náhodné čísla.
R kód a výstup:
Funkcia rnorm vezme prvý argument, ktorý hovorí, koľko čísel treba vygenerovať.
e) Rep: Táto funkcia replikuje hodnotu toľkokrát, ako je špecifikované.
Syntax R: rnorm (x, n)
Tu x predstavuje hodnotu, ktorá sa má replikovať, a n predstavuje počet replikácií.
R kód a výstup:
f) Vložiť: Táto funkcia spája reťazce spolu s určitým špecifickým znakom medzi nimi.
syntax
paste(x, sep = “”, collapse = NULL)
R kód
paste("fish", "water", sep=" - ")
Výstup R:
Ako vidíte, môžeme vložiť aj viac ako dva reťazce. Sep je špecifický znak, ktorý sme pridali medzi reťazce. V predvolenom nastavení je sep priestor.
Existuje jedna podobná funkcia, ako je táto, o ktorej by si mal byť každý vedomý, je paste0.
Funkcia paste0 (x, y, collapse) funguje podobne ako paste (x, y, sep = “”, collapse)
Pozrite si nasledujúci príklad:
Jednoducho povedané, zhrnúť vložiť a vložiť0:
Paste0 je rýchlejší ako vloženie, pokiaľ ide o zreťazenie reťazcov bez oddeľovača. Pri vložení vždy hľadajte výraz „sep“ a v predvolenom nastavení je v ňom medzera.
g) Strsplit: Táto funkcia slúži na rozdelenie reťazca. Pozrime sa na jednoduché prípady:
h) Rbind: Funkcia rbind pomáha pri česaní vektorov s rovnakým počtom stĺpcov, jeden nad druhým.
príklad
i) cbind: Toto kombinuje vektory s rovnakým počtom radov vedľa seba.
príklad
V prípade, že sa počet riadkov nezhoduje, nájdete nasledujúcu chybu:
Viazanie aj odvíjanie pomáha pri manipulácii s dátami a ich preformovaní.
2) Matematická funkcia -
R poskytuje širokú škálu matematických funkcií. Pozrime sa na niektoré z nich podrobne:
a) Sqrt: Táto funkcia vypočíta druhú odmocninu čísla alebo číselného vektora.
R kód a výstup:
Je možné vidieť, ako sa vypočíta druhá odmocnina čísla, komplexného čísla a postupnosti číselného vektora.
b) Exp: Táto funkcia vypočíta exponenciálnu hodnotu čísla alebo číselného vektora.
R kód a výstup:
c) Cos, Sin, Tan: Toto sú trigonometrické funkcie implementované v R tu.
R kód a výstup:
d) Abs: Táto funkcia vracia absolútnu kladnú hodnotu čísla.
Ako vidíte, záporné alebo kladné číslo sa vráti v absolútnej podobe. Pozrime sa na komplexné číslo:
e) Denník: Tu nájdete logaritmus čísla.
Tu je príklad uvedený nižšie:
Tu sa dá flexibilita zmeniť základňu podľa požiadavky.
f) Kumsum: Ide o matematickú funkciu, ktorá poskytuje kumulatívne sumy. Tu je príklad uvedený nižšie:
g) Cumprod: Rovnako ako v prípade matematickej funkcie Cumsum, aj v prípade kumulatívneho násobenia dochádza k cumprod.
Pozrite si nasledujúci príklad:
h) Max, Min: Toto vám pomôže nájsť maximálnu / minimálnu hodnotu v množine čísel. Nižšie sú uvedené príklady:
i) Strop: Strop je matematická funkcia, ktorá vracia najmenšie celé číslo vyššie, ako je uvedené.
Pozrime sa na príklad:
strop (2, 67)
Ako si môžete všimnúť, strop sa aplikuje na číslo aj na zoznam a výstup prišiel je najmenší z nasledujúceho vyššieho celého čísla.
j) Poschodie: Poschodie je matematická funkcia, ktorá vracia najmenšie celé číslo zo zadaného čísla.
Nižšie uvedený príklad vám pomôže lepšie porozumieť:
Rovnakým spôsobom funguje aj pre záporné hodnoty. Prosim, pozri sa:
3) Štatistické funkcie -
Toto sú funkcie, ktoré popisujú súvisiace rozdelenie pravdepodobnosti.
a) Medián: Vypočítal sa medián zo sekvencie čísiel.
syntax
R kód a výstup:
b) Dnorm: Toto sa týka normálneho rozdelenia. Funkcia dnorm vracia hodnotu funkcie hustoty pravdepodobnosti pre normálne rozdelenie dané parametre pre x, μ a σ.
R kód a výstup:
c) Cov: Covariance povie, či dva vektory nie sú pozitívne, negatívne alebo úplne nesúvisiace.
R kód
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)
Výstup R:
Ako vidíte, dva vektory sú pozitívne spojené, čo znamená, že oba vektory sa pohybujú rovnakým smerom. Ak je kovariancia negatívna, znamená to, že xay sú nepriamo spojené, a teda sa pohybujú opačným smerom.
d) Cor: Toto je funkcia na nájdenie korelácie medzi vektormi. V skutočnosti udáva asociačný faktor medzi dvoma vektormi, ktorý je známy ako „korelačný koeficient“. Korelácia pridáva stupeň koeficientu nad kovarianciou. Ak sú dva vektory pozitívne korelované, korelácia vám tiež povie, do akej miery sú pozitívne spojené.
Tieto tri typy metód, ktoré možno použiť na nájdenie korelácie medzi dvoma vektormi:
- Pearsonova korelácia
- Kendallova korelácia
- Spearmanova korelácia
V jednoduchom formáte R to vyzerá takto:
cor(x, y, method = c("pearson", "kendall", "spearman"))
Tu x a y sú vektory.
Pozrime sa na praktický príklad korelácie so zabudovaným súborom údajov.
Tu vidíte, že funkcia „cor ()“ dala korelačný koeficient 0, 41 medzi „qsec“ a „mpg“. Bola však predstavená ešte jedna funkcia, tj „cor.test ()“, ktorá nielenže hovorí o korelačnom koeficiente, ale tiež o hodnote p a at. Interpretácia sa stáva oveľa ľahšou pomocou funkcie cor.test.
Podobné je možné urobiť s ďalšími dvoma metódami korelácie:
R kód pre Pearsonovu metódu:
my_data <- mtcars
cor(my_data$qsec, my_data$mpg, method = " pearson ")
cor.test(my_data$qsec, my_data$mpg, method = " pearson")
R kód pre Kendallovu metódu:
my_data <- mtcars
cor(my_data$qsec, my_data$mpg, method = " kendall")
cor.test(my_data$qsec, my_data$mpg, method = " kendall")
R kód pre Spearmanovu metódu:
my_data <- mtcars
cor(my_data$qsec, my_data$mpg, method = "spearman")
cor.test(my_data$qsec, my_data$mpg, method = "spearman")
Korelačný koeficient je v rozsahu od -1 do 1.
Ak je korelačný koeficient záporný, znamená to, že keď x stúpne, y klesá.
Ak je korelačný koeficient nula, znamená to, že medzi xay neexistuje žiadna asociácia.
Ak je korelačný koeficient kladný, znamená to, že keď x stúpa, y tiež zvyšuje.
e) T-test: T-test vám povie, či dva súbory údajov pochádzajú z tej istej (za predpokladu) normálnej distribúcie alebo nie.
Tu by ste mali odmietnuť nulovú hypotézu, že dva prostriedky sú rovnaké, pretože hodnota p je menšia ako 0, 05.
Táto zobrazená inštancia je typu: nepárové množiny údajov s nerovnakými odchýlkami. Podobne sa dá vyskúšať aj so spárovaným súborom údajov.
f) Jednoduchá lineárna regresia: Toto ukazuje vzťah medzi prediktorovou / nezávislou a závislou / závislou premennou.
Jednoduchým praktickým príkladom by mohlo byť predpovedanie hmotnosti osoby, ak je výška známa.
R syntax
lm(formula, data)
Tu vzorec zobrazuje vzťah medzi výstupom tj y a vstupnou premennou iex Údaje predstavujú množinu údajov, na ktorú sa vzorec musí použiť.
Pozrime sa na jeden praktický príklad, kde podlahová plocha je vstupnou premennou a nájomná je výstupnou premennou.
x <- c (1510, 1000, 600, 500, 1280, 136, 1790, 1630)
y <- c (15000, 10000, 6000, 5000, 12800, 13600, 17900, 16300)
Hodnota P tu nie je menšia ako 5%. Nulová hypotéza preto nemôže byť odmietnutá. Nie je veľký význam preukazovať vzťah medzi podlahovou plochou a nájomným.
Tu je hodnota R-štvorca 0, 4813. Z toho vyplýva, že vstupnou premennou možno vysvetliť iba 48% odchýlky vo výstupnej premennej.
Povedzme, že teraz musíme predpovedať hodnotu podlahovej plochy na základe vyššie uvedeného modelu.
R kód
x_new <- data.frame(x = 1700)
result <- predict(relation, x_new)
print(result)
Výstup R:
Po vykonaní vyššie uvedeného kódu R bude výstup vyzerať takto:
Dá sa zmestiť a vizualizovať regresiu. Tu je kód R:
# Pomenujte súbor grafu png.
png(file = "LinearRegressionSample.png.webp")
# Zostrojte graf.
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")
# Uložte súbor.
dev.off()
Tento graf „LinearRegressionSample.png.webp“ sa vygeneruje v súčasnom pracovnom adresári.
g) Chi-Square test
Toto je štatistická funkcia v R. Tento test má svoj význam, aby sa dokázalo, či existuje korelácia medzi dvoma kategorickými premennými.
Tento test funguje rovnako ako všetky ostatné štatistické testy založené na p-hodnote, pričom je možné akceptovať alebo odmietnuť nulovú hypotézu.
R syntax
chisq.test(data), /code>
Pozrime sa na jeden praktický príklad.
R kód
# Vložte knižnicu.
library(datasets)
data(iris)
# Vytvorte dátový rámec z hlavnej množiny údajov.
iris.data <- data.frame(iris$Sepal.Length, iris$Sepal.Width)
# Vytvorte tabuľku s potrebnými premennými.
iris.data = table(iris$Sepal.Length, iris$Sepal.Width)
print(iris.data)
# Vykonajte test Chi-Square.
print(chisq.test(iris.data))
Výstup R:
Ako je vidieť, test chí-kvadrát sa vykonal na súbore údajov o dúhovke, pričom sa zohľadnili jeho dve premenné „Sepal. Dĺžka “a„ Šírka pásma “.
Hodnota p nie je menšia ako 0, 05, preto medzi týmito dvoma premennými neexistuje korelácia. Alebo môžeme povedať, že tieto dve premenné na sebe nezávisia.
záver
Funkcie v R sú jednoduché, ľahko namontovateľné, ľahko pochopiteľné a napriek tomu veľmi silné. V R. sme videli množstvo funkcií, ktoré sa používajú ako súčasť základov R. Keď sa človek s vyššie uvedenými funkciami pohodlne stretne, môžeme preskúmať ďalšie druhy funkcií. Funkcie vám pomôžu, aby váš kód bežal jednoduchým a stručným spôsobom. Funkcie môžu byť zabudované alebo definované používateľom, všetko závisí od potreby pri riešení problému. Funkcie dávajú programu dobrý tvar.
Odporúčané články
Toto je sprievodca funkciami v R. Tu diskutujeme o tom, ako napísať funkcie v R a rôzne typy funkcií v R so syntaxou a príkladmi. Viac informácií nájdete aj v nasledujúcom článku -
- R Stringové funkcie
- Funkcie reťazca SQL
- Funkcie reťazca T-SQL
- Funkcie reťazca PostgreSQL