Učení R | Část 2 | Proměnné a funkce
Proměnné
x <- (1:10)x = (1:10)(1:10) -> xassign("x", 1:10)
Všechny výše uvedené způsoby přiřadí pole od 1 do 10 proměnné x.
Toto jsou operátory přiřazení =, ->, <- .
Další běžnou funkcí pro vytvoření vektoru nebo seznamu je funkce c(…).
c(1,10:13)Výstupem by bylo pole1 10 11 12 13. To znamená sloučení objektů/proměnných oddělených čárkami.c(1:5, 10.5, "next")Výstupem by bylo pole"1" "2" "3" "4" "5" "10.5" "next".y = c(1,2,3)&x = c(y, 1, y)To je příklad použití proměnných k vytvoření nových proměnných. Zde by hodnotaybyla1 2 3, zatímco hodnotaxby byla1 2 3 1 1 2 3.
Pro další použití funkce c(…) se podívejte na-
Vestavěné funkce
c(…)— Jak je vysvětleno výše.ls()neboobjects()— Poskytuje seznam existujících vytvořených objektů.rm("x")— Smaže objekt. Parametrem je název objektu.sum("x")— Dává součet vektorux. Například, pokud jex1 2 3 1 1 2 3pak bysum("x")byla13.sqrt("x")— Dává druhou odmocninu vektorux. Například pokud jex1 4 9pak bysqrt("x")byl další vektor s hodnotami1 2 3.seq(…)— Tato funkce se používá k generování posloupnosti čísel. Bere různé parametry jakofrom(Počáteční hodnota posloupnosti),to(Koncová hodnota posloupnosti),by(Číslo, o které se má posloupnost zvýšit),length.out(Délka posloupnosti) aalong.with(Toto je seznam vektoru o délce n a používá se pouze k získání délky tohoto předaného seznamu. Zvláštní 😷) Příklad:-seq(from=1, to=4, by=0.5)— Dává posloupnost od1do4s přírůstkem0.5. Více oseq(…)zde.paste(…)Tato funkce se používá k vytvoření řetězců pomocí zřetězení vektorů pomocí 2 parametrů jmenuje sesepacollapse.sepposkytuje oddělovač mezi zřetězenými vektory, zatímcocollapseposkytuje oddělovač, který zřetězuje hodnoty v zřetězeném vektoru. (Počátek? 🤒) Naučme se to na některých příkladech.paste("xyz", 1:3)—"xyz 1" "xyz 2" "xyz 3"(Toto je bezsepacollapse)paste("xyz", c(1,2,"variable",3), sep=",")—"xyz,1" "xyz,2" "xyz,variable" "xyz,3"(Toto je pouze sesep)paste(c(1:5), c(5:10), sep = ": ", collapse = "; ")—"1: 5; 2: 6; 3: 7; 4: 8; 5: 9; 1: 10"(Toto je sesepacollapse; Všimněte si zde, že to tvoří jeden řetězec 😄.) Více opaste(…)zde.rep(x, …)— Jak název napovídá, tato funkce se používá k opakování existujícího vektoru. Parametry, které může tato funkce přijmout, jsoutimes(Počet opakování vektoru),length.out(Požadovaná délka výstupního vektoru) aeach(Počet opakování každého prvku vektoru)rep(c(1,2,3), 3) nebo rep(c(1:3), times=3)—1 2 3 1 2 3 1 2 3rep(c(1:3), each=3)—1 1 1 2 2 2 3 3 3Více orep(x, …)zde.
Funkce definované uživatelem
Níže uvedený příklad ukazuje jednoduchý způsob, jak napsat jednořádkovou funkci, která vrací druhou mocninu proměnné. Název funkce je zde fn.
fn <- function(a) {a*a}
fn(10)
Příklad bloku kódu ve funkci.
fn -> function(a, b) {
c = a * b
c = c + b
print(x)
}
fn(10, 20)
Funkce se smyčkami,if-else.
primeNumber = function(n) {
if(n>=2) {
s = seq(2,n) p = c() #Inicializace vektoru, který ukládá prvočísla
for(i in seq(2,n)) {
if(any(s == i) {
p = c(p, i)
s = c(s[(s%%i) != 0], i)
}
}
return(p)
} else {
stop("Input greater than 2")
}
}
Výše uvedený příklad vrací vektor se všemi prvočísly až do n předaného funkci. Funkce stop zde zastavuje provádění a vyvolá chybu.
Počáteční p = c() se používá k inicializaci vektoru, který ukládá prvočíslo. A s = seq (2,n) se používá k inicializaci vektoru až do, který se pak opakuje.
Smyčka kontroluje, zda je hodnota přítomna v dříve definovaném vektoru s pomocí funkce any. A pokud se shoduje, pak připojí tuto hodnotu k vektoru prvočísel a aktualizuje vektor, který se má zkontrolovat, tj. s se všemi čísly, která nejsou dělitelná aktuálním i
Na konci smyčky vektor p obsahuje všechna prvočísla.
Reference
Děkuji za přečtení. V mém příštím článku budu vysvětlovat funkce vykreslování. Kromě toho také poznatky o balíčcích a datech.
Také, pokud jste si nepřečetli část 1. Můžete si ji přečíst zde.
Napište své otázky níže. Návrhy jsou vítány. 🙌



