Learning R | Teil 2 | Variablen & Funktionen
Variablen
x <- (1:10)x = (1:10)(1:10) -> xassign("x", 1:10)
Alle oben genannten Methoden weisen ein Array von 1 bis 10 der Variable x zu.
Dies sind die Zuweisungsoperatoren =, ->, <- .
Eine weitere häufig verwendete Funktion zum Erstellen eines Vektors oder einer Liste ist die c(…) Funktion.
c(1,10:13)Die Ausgabe würde ein Array1 10 11 12 13sein. Dies bedeutet das Zusammenführen von durch Kommas getrennten Objekten/Variablen.c(1:5, 10.5, "next")Die Ausgabe würde ein Array"1" "2" "3" "4" "5" "10.5" "next"sein.y = c(1,2,3)&x = c(y, 1, y)Dies ist ein Beispiel für die Verwendung von Variablen zum Erstellen neuer Variablen. Hier würde der Wert vony1 2 3sein, während der Wert vonx1 2 3 1 1 2 3wäre.
Für weitere Verwendung der c(…) Funktion siehe-
Integrierte Funktionen
c(…)— Wie oben erläutert.ls()oderobjects()— Gibt eine Liste der vorhandenen Objekte aus.rm("x")— Löscht ein Objekt. Der Parameter ist der Name des Objekts.sum("x")— Gibt die Summe des Vektorsxaus. Zum Beispiel, wennx1 2 3 1 1 2 3ist, dann würdesum("x")13sein.sqrt("x")— Gibt die Quadratwurzel des Vektorsxaus. Zum Beispiel, wennx1 4 9ist, dann würdesqrt("x")ein weiterer Vektor mit Werten1 2 3sein.seq(…)— Diese Funktion wird verwendet, um eine Zahlenreihe zu generieren. Sie nimmt verschiedene Parameter wiefrom(Startwert der Sequenz),to(Endwert der Sequenz),by(Zahl, um die die Sequenz inkrementiert wird),length.out(Länge der Sequenz) undalong.with(Dies ist eine Liste von Vektor mit Länge n und wird nur verwendet, um die Länge dieser übergebenen Liste zu erhalten. Seltsam 😷) Beispiel:-seq(from=1, to=4, by=0.5)— Gibt eine Sequenz von1bis4mit0.5Inkrement aus. Mehr überseq(…)hier.paste(…)Diese Funktion wird verwendet, um Zeichenketten durch Verkettung von Vektoren mit 2 Parametern namenssep&collapsezu erstellen.sepbietet einen Separator zwischen den verketteten Vektoren, währendcollapseeinen Separator bietet, der die Werte im verketteten Vektor verkettet. (Inception? 🤒) Lernen wir es mit einigen Beispielen.paste("xyz", 1:3)—"xyz 1" "xyz 2" "xyz 3"(Dies ist ohnesep&collapse)paste("xyz", c(1,2,"variable",3), sep=",")—"xyz,1" "xyz,2" "xyz,variable" "xyz,3"(Dies ist nur mitsep)paste(c(1:5), c(5:10), sep = ": ", collapse = "; ")—"1: 5; 2: 6; 3: 7; 4: 8; 5: 9; 1: 10"(Dies ist mitsepundcollapse; Beachten Sie hier, dass dies eine einzelne Zeichenkette bildet 😄.) Mehr überpaste(…)hier.rep(x, …)— Wie der Name schon sagt, wird diese Funktion verwendet, um den vorhandenen Vektor zu wiederholen. Die Parameter, die diese Funktion annehmen kann, sindtimes(Häufigkeit, mit der der Vektor wiederholt werden sollte),length.out(Gewünschte Länge des Ausgabevektors) &each(Häufigkeit, mit der jedes Element des Vektors wiederholt werden sollte)rep(c(1,2,3), 3) or 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 3Mehr überrep(x, …)hier.
Benutzerdefinierte Funktionen
Das folgende Beispiel zeigt eine einfache Möglichkeit, eine einzeilige Funktion zu schreiben, die das Quadrat einer Variable zurückgibt. Der Funktionsname ist hier fn.
fn <- function(a) {a*a}
fn(10)
Beispiel eines Codeblocks in einer Funktion.
fn -> function(a, b) {
c = a * b
c = c + b
print(x)
}
fn(10, 20)
Funktionen mit Schleifen,if-else.
primeNumber = function(n) {
if(n>=2) {
s = seq(2,n) p = c() #Initializing the vector which stores prime numbers
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")
}
}
Das obige Beispiel gibt einen Vektor mit allen Primzahlen bis zur an die Funktion übergebenen n zurück. Die stop Funktion stoppt hier die Ausführung und wirft einen Fehler.
Das anfängliche p = c() wird verwendet, um den Vektor zu initialisieren, der die Primzahl speichert. Und s = seq (2,n) wird verwendet, um den Vektor zu initialisieren, durch den dann looped wird.
Die Schleife prüft, ob der Wert im Vektor s, der zuvor definiert wurde, mithilfe der any Funktion vorhanden ist. Und wenn er übereinstimmt, hängt er diesen Wert an den Primzahlvektor an und aktualisiert den zu überprüfenden Vektor, d. h. s, mit allen Zahlen, die nicht durch das aktuelle i teilbar sind.
Am Ende der Schleife enthält der p Vektor alle Primzahlen.
Referenzen
Danke fürs Lesen. In meinem nächsten Artikel werde ich Plotfunktionen erklären. Außerdem einige Einblicke in Pakete & Datensätze.
Auch, wenn Sie Teil 1 noch nicht gelesen haben. Sie können es hier lesen.
Stellen Sie Ihre Fragen unten. Vorschläge sind willkommen. 🙌



