Az R dinamikusan típusos nyelv, ezért általában nem kell megadni egy változó típusát. Az ajánlott értékadó operátor a <-.
x <- 42
avogadro <- 6.02e23
mystr <- "Hello, World!"
Ha a <- helyett =-t használsz, az gyakran, de nem mindig működik, és rossz stílusnak számít. Ha RStudio-ban dolgozol, a Alt-minus billentyűparanccsal írhatod be.
Az operátorok többnyire megszokottak, de figyelj a %/% és a %% operátorra:
2 + 3 # 5
2 - 3 # -1
2 * 3 # 6
2 / 3 # 0.6666667
8 %/% 3 # 2 (integer division)
8 %% 3 # 2 (remainder)
2 ^ 3 # 8 (exponential)
Az R-ben a # egysoros megjegyzést indít. A többsoros megjegyzésekhez nincs külön szintaxis.
Így definiálhatsz egy függvényt:
squareit <- function(x) {
x * x
}
A függvényeknek nulla vagy több argumentuma lehet, amelyeket vessző választ el. A function() után akkor is kellenek a zárójelek (), ha egyetlen paraméter sincs.
A függvény argumentumaihoz megadhatsz alapértelmezett értéket, ezeknek azonban minden alapértelmezés nélküli argumentum után kell következniük, és az alapértelmezett érték megadásához =-t kell használni, nem <--ot. Egy meglehetősen értelmetlen példa:
squareit <- function(x = 42) {
x * x
}
squareit()
#> [1] 1764
Az egysoros függvénytestekhez a kapcsos zárójelek { } szigorúan véve nem kötelezőek, de a használatuk jó stílusnak számít.
Az R automatikusan visszaadja a függvény utolsó értékét, ahogy a fenti példákban is látszik.
A return() a függvénytest bármely pontján használható, hogy a visszatérési értéket explicit módon megadd.
Egy függvény meghívása ugyanúgy néz ki, mint sok más nyelvben:
squareit(3)
#> [1] 9
Ebben a feladatban kódot írsz majd, hogy segíts megsütni egy remek lasagnét a kedvenc szakácskönyvedből.
Négy részfeladat vár rád, mindegyik a lasagne elkészítésével töltött időhöz kapcsolódik.
Definiáld az expected_minutes_in_oven() függvényt, amely nem vesz át paramétereket, és visszaadja, hogy hány percig kell a lasagnének a sütőben lennie. A szakácskönyv szerint a sütőben eltöltendő várható idő 60 perc.
> expected_minutes_in_oven()
[1] 60
Definiáld a remaining_time_in_minutes függvényt, amely paraméterként átveszi, hogy a lasagne hány perce van a sütőben, és visszaadja, hogy az előző részfeladatban megadott várható sütési idő alapján hány percig kell még a sütőben maradnia.
> remaining_time_in_minutes(50)
[1] 10
Definiáld a prep_time_in_minutes() függvényt, amely paraméterként átveszi a lasagnébe tett rétegek számát, és visszaadja, hogy hány percet töltöttél a lasagne előkészítésével, feltéve, hogy egy réteg elkészítése 2 percet vesz igénybe.
> prep_time_in_minutes(2)
[1] 4
Definiáld az elapsed_time_in_minutes függvényt, amely két argumentumot vár: az első argumentum a lasagnébe tett rétegek száma, a második paraméter pedig az, hogy hány perce van a lasagne a sütőben. A függvény adja vissza, hogy összesen hány percet dolgoztál a lasagne elkészítésén, ami az előkészítési idő és a lasagnének a sütőben eddig eltöltött idejének az összege.
> elapsed_time_in_minutes(3, 20)
[1] 26
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) R nyelvet 21 fogalom111 feladat segítségével, valódi emberi mentorálással, mindez ingyen.