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üsselwortsreturn。

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

# Definiere eine Additionsfunktion
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

# Definiere eine Funktion zur Berechnung des Quadrats einer Sequenz
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}

Als Nächstes können wir die Funktion aufrufen:

Beispiel

new.function <- function(a) {
    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

new.function <- function() {
    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

# Eine Funktion erstellen
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

# Funktion mit Standardparametern erstellen
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] 45

Funktionen 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

f <- Funktion(x) {
  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

new.function <- function(a, b) {
   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

# Alle Zahlen von 32 bis 44 ausgeben
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

# Summe eines Vektors
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

# Durchschnitt eines Vektors
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

x <- "Hello"
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

x <- c(1, 2, 3, 4, 5)
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

x <- c(1, 2, 3, 4, 5)
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