R Funktionen
Eine Funktion ist eine Gruppe von Anweisungen, die zusammen eine Aufgabe ausführen. Die Sprache R selbst bietet viele integrierte Funktionen, und natürlich können wir auch eigene Funktionen erstellen.
Sie können Ihren Code in verschiedene Funktionen aufteilen. Wie Sie den Code auf verschiedene Funktionen aufteilen, bleibt Ihnen überlassen, aber logisch betrachtet basiert die Aufteilung normalerweise darauf, dass jede Funktion eine bestimmte Aufgabe erfüllt.
FunktionDeklarationTeilt dem Compiler den Namen, Rückgabetyp und die Parameter der Funktion mit. FunktionDefinitionStellt den eigentlichen Rumpf der Funktion bereit.
In R ist eine Funktion ein Objekt, das Attribute haben kann.
Funktionen definieren
Eine Funktionsdefinition besteht normalerweise aus den folgenden Teilen:
- Funktionsname:Weist der Funktion einen eindeutigen Namen zu, der beim Aufrufen verwendet wird.
- Parameter:Definieren die von der Funktion akzeptierten Eingabewerte. Parameter sind optional und können mehrfach vorkommen.
- Funktionskörper:Enthält den eigentlichen ausführbaren Codeblock, der mit geschweiften Klammern{}umschlossen wird.
- Rückgabewert:Legt das Ausgabeergebnis der Funktion fest, unter Verwendung des Schlüsselworts
return。
Funktionsdefinitionen in R verwenden dasfunction-Schlüsselwort; die allgemeine Form ist wie folgt:
function_name <- function(arg_1, arg_2, ...) {
# 函数体
# 执行的代码块
return(output)
}
Beschreibung:
- function_name : ist der Funktionsname
- arg_1, arg_2, ... : die formale Parameterliste
Der Rückgabewert der Funktion verwendetreturn()。
Das folgende ist ein einfaches Beispiel, das zeigt, wie eine Funktion definiert und verwendet wird:
Beispiel
add_numbers <- Funktion(x, y) {
result <- x + y
return(result)
}
# Rufe die Funktion auf
sum_result <- add_numbers(3, 4)
print(sum_result) # Ausgabe 7
Im obigen Code haben wir eine Funktion namensadd_numbers, die zwei Parameterxundyakzeptiert. Der Code im Funktionskörper addiert die beiden Parameter und speichert das Ergebnis in der Variableresult. Schließlich verwendest du das Schlüsselwortreturn, um das Ergebnis zurückzugeben.
Um eine Funktion aufzurufen, verwenden wir die Form des Funktionsnamens, gefolgt von der Parameterliste, um die Parameterwerte an die Funktion zu übergeben. In diesem Beispiel rufen wir dieadd_numbers-Funktion auf und übergeben die Argumente 3 und 4. Nachdem die Funktion ausgeführt wurde, gibt sie das Ergebnis 7 zurück, das wir in der Variable speichernsum_resultund geben sie aus.
Benutzerdefinierte Funktionen
Wir können eigene Funktionen für bestimmte Funktionen erstellen, und nach der Definition können wir sie wie integrierte Funktionen verwenden.
Das Folgende zeigt, wie man eine benutzerdefinierte Funktion definiert:
Beispiel
new.function <- function(a) {
for(i in 1:a) {
b <- i^2
print(b)
}
}
Als Nächstes können wir die Funktion aufrufen:
Beispiel
for(i in 1:a) {
b <- i^2
print(b)
}
}
# Funktion aufrufen und Parameter übergeben
new.function(6)
Wenn Sie den obigen Code ausführen, lautet das Ausgabeergebnis:
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25 [1] 36
Wir können auch eine Funktion ohne Parameter erstellen:
Beispiel
for(i in 1:5) {
print(i^2)
}
}
# Funktion aufrufen, Parameter müssen nicht übergeben werden
new.function()
Wenn Sie den obigen Code ausführen, lautet das Ausgabeergebnis:
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25
Funktionen mit Parameterwerten
Funktionsparameter können in der Reihenfolge übergeben werden, in der sie bei der Definition der Funktion festgelegt wurden, oder in einer anderen Reihenfolge, aber die Parameternamen müssen angegeben werden:
Beispiel
new.function <- function(a,b,c) {
result <- a * b + c
print(result)
}
# Ohne Parameternamen
new.function(5,3,11)
# Mit Parameternamen
new.function(a = 11, b = 5, c = 3)
Wenn Sie den obigen Code ausführen, lautet das Ausgabeergebnis:
[1] 26 [1] 58
Beim Erstellen einer Funktion können auch Standardwerte für Parameter angegeben werden. Wenn beim Aufruf keine Parameter übergeben werden, werden die Standardwerte verwendet:
Beispiel
new.function <- function(a = 3, b = 6) {
result <- a * b
print(result)
}
# Die Funktion ohne Übergabe von Parametern aufrufen; sie verwendet den Standardwert
new.function()
# Die Funktion unter Übergabe von Parametern aufrufen
new.function(9,5)
Wenn Sie den obigen Code ausführen, lautet das Ausgabeergebnis:
[1] 18 [1] 45Funktionen mit verzögerter Auswertung
Die verzögerte Auswertung (Lazy Evaluation) verschiebt die Berechnung, bis das System die Ergebnisse dieser Berechnungen benötigt. Wenn die Ergebnisse nicht benötigt werden, wird die Berechnung nicht ausgeführt.
Standardmäßig sind R-Funktionen bei der Berechnung von Parametern lazy, was bedeutet, dass sie erst aufgerufen werden, wenn wir sie berechnen:
Beispiel
10
}
f()
Wenn Sie den obigen Code ausführen, lautet das Ausgabeergebnis:
[1] 10
Der obige Code wird ohne Fehler ausgeführt. Obwohl wir den Parameter nicht übergeben haben, wird der Parameter x im Funktionskörper nicht verwendet, daher wird er nicht aufgerufen und es wird kein Fehler ausgelöst.
Beispiel
print(a^2)
print(a)
print(b) # Verwendet b, aber b wird nicht übergeben, daher wird ein Fehler ausgelöst
}
# Einen Parameter übergeben
new.function(6)
Wenn Sie den obigen Code ausführen, lautet das Ausgabeergebnis:
[1] 36 [1] 6 Error in print(b) : 缺少参数"b",也没有缺省值 Calls: new.function -> print 停止执行
Integrierte Funktionen
Die Sprache R bietet viele nützliche integrierte Funktionen, die wir direkt verwenden können, ohne sie zu definieren.
Zum Beispiel: seq(), mean(), max(), sum(x) und paste(...) usw.
Beispiel
print(seq(32,44))
# Den Durchschnitt von zwei Zahlen berechnen
print(mean(25:82))
# Berechne die Summe aller Zahlen von 41 bis 68
print(sum(41:68))
Wenn Sie den obigen Code ausführen, lautet das Ausgabeergebnis:
[1] 32 33 34 35 36 37 38 39 40 41 42 43 44 [1] 53.5 [1] 1526
sum(): Berechne die Summe eines Vektors oder einer Matrix.
Beispiel
x <- c(1, 2, 3, 4, 5)
total <- sum(x)
print(total) # Ausgabe 15
# Summe einer Matrix
matrix <- matrix(1:9, nrow = 3)
total <- sum(matrix)
print(total) # Ausgabe 45
mean(): Berechne den Durchschnitt eines Vektors oder einer Matrix.
Beispiel
x <- c(1, 2, 3, 4, 5)
avg <- mean(x)
print(avg) # Ausgabe 3
# Durchschnitt einer Matrix
matrix <- matrix(1:9, nrow = 3)
avg <- mean(matrix)
print(avg) # Ausgabe 5
paste():Mehrere Zeichenketten zu einer Zeichenkette verketten.
Beispiel
y <- "World"
result <- paste(x, y)
print(result) # Ausgabe "Hello World"
length():Gibt die Länge eines Vektors oder die Anzahl der Elemente in einem Objekt zurück.
Beispiel
length_x <- length(x)
print(length_x) # Ausgabe 5
matrix <- matrix(1:9, nrow = 3)
length_matrix <- length(matrix)
print(length_matrix) # Ausgabe 9
str():Zeigt die Struktur und eine Zusammenfassung des Inhalts eines Objekts an.
Beispiel
str(x)
# Output:
# num [1:5] 1 2 3 4 5
matrix <- matrix(1:9, nrow = 3)
str(matrix)
# Output:
# int [1:3, 1:3] 1 2 3 4 5 6 7 8 9
Das Obige listet nur einen kleinen Teil der Funktionsbeispiele der R-Sprache auf. R verfügt über eine große Anzahl integrierter Funktionen und von Erweiterungspaketen bereitgestellter Funktionen, die verschiedene Anforderungen wie Datenverarbeitung, statistische Analyse, Diagrammerstellung usw. erfüllen können. Eine detailliertere Liste der Funktionen und Nutzungshinweise finden Sie in der offiziellen Dokumentation zur R-Sprache.
Andere Erweiterungen