English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R-Funktionen

Funktion ist eine Gruppe von Anweisungen, die gemeinsam eine Aufgabe ausführen. R bietet viele eingebaute Funktionen, natürlich können wir auch selbst Funktionen erstellen.

Sie können den Code in verschiedene Funktionen aufteilen. Wie Sie den Code in verschiedene Funktionen aufteilen, entscheiden Sie selbst, aber im logischen Sinne erfolgt die Aufteilung normalerweise darauf, dass jede Funktion eine spezifische Aufgabe ausführt.

FunktionDeklarationInformiert den Compiler über den Namen, den Rückgabetyp und die Parameter der Funktion. FunktionDefinierenBietet den tatsächlichen Hauptteil der Funktion.

Funktionen in R sind Objekte und können Eigenschaften haben.

Funktion definieren

Die Definition von Funktionen in R verwendet den Schlüsselwort 'function', und die allgemeine Form ist wie folgt:

function_name <- function(arg_1, arg_2, ...) {
    // Funktionshauptteil
}

Beschreibung:

  • function_name  : Der Name der Funktion

  • arg_1, arg_2, ... : Liste der Formparametern

Der Rückgabewert der Funktion wird mit return() verwendet.

Eingebaute Funktion

R bietet viele nützliche eingebaute Funktionen, die wir ohne Definition direkt verwenden können.

Beispiel: seq(), mean(), max(), sum(x) sowie paste(...) und mehr.

# Ausgabe  32 bis 44 alle Zahlen bis
print(seq(32,44))
# Berechnung des Durchschnitts zweier Zahlen
print(mean(25:82))
# Berechnen 41 bis 68 Die Summe aller Zahlen
print(sum(41:68))

Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:

 [1] 32 33 34 35 36 37 38 39 40 41 42 43 44
[1] 53.5
[1] 1526

Selbstdefinierte Funktion

Wir können unsere eigenen Funktionen erstellen, die spezielle Funktionen ausführen, und können sie nach der Definition wie eingebaute Funktionen verwenden.

Hier wird gezeigt, wie man Funktionen selbst definiert:

# Definition einer Funktion zur Zählung einer Reihe bis zum Quadrat
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}

Hier können wir die Funktion aufrufen:

new.function <- function(a) {
    for(i in 1:a) {
       b <- i^2
       print(b)
    }
 }
 
# Aufruf der Funktion und Übermittlung von Parametern
new.function(6)

Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[1] 36

Wir können auch eine Funktion ohne Parameter erstellen:

new.function <- function() {
    for(i in 1:5) {
        print(i^2)
    }
}       
 
# Funktion aufrufen, ohne Parameter übergeben
new.function()

Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25

Funktionen mit Parameterwerten

Funktion参数,können nach der Reihenfolge der Erstellung der Funktion übergeben werden, können aber auch nicht nach der Reihenfolge übergeben werden, müssen aber Parameternamen angeben:

# Funktion erstellen
new.function <- function(a,b,c) {
   result <- a * b + c
   print(result)
}
# Ohne Parametername
new.function(5,3,11)
# Mit Parametername
new.function(a = 11, b = 5, c = 3)

Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:

[1] 26
[1] 58

Funktionen können auch bei der Erstellung der Parameter Standardwerte zugewiesen bekommen, wenn keine Parameter übergeben werden, werden Standardwerte verwendet:

# Erstellen Sie eine Funktion mit Standardwerten
new.function <- function(a = 3, b = 6) {
   result <- a * b
   print(result)
}
# Funktion aufrufen, ohne Parameter übergeben, wird der Standardwert verwendet
new.function()
# Funktion aufrufen, Parameter übergeben
new.function(9,5)

Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:

[1] 18 [1] 45

Funktionen mit lazy Berechnung

Lazare Berechnung verzögert die Berechnungsarbeit bis das System die Ergebnisse dieser Berechnungen benötigt. Wenn die Ergebnisse nicht benötigt werden, wird nicht berechnet.

Standardmäßig führt die R-Funktion die Parameterberechnung lazily aus, das bedeutet, dass sie nur aufgerufen wird, wenn wir sie berechnen:

f <- function(x) {
  10
}
f()

Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:

[1] 10

Der obige Code wird ausgeführt und gibt keinen Fehler aus, obwohl wir keine Parameter übergeben haben, da der Parameter x im Funktionskörper nicht verwendet wird, wird er nicht aufgerufen und es wird kein Fehler ausgegeben.

new.function <- function(a, b) {
   print(a^2)
   print(a)
   print(b)  # b wird verwendet, aber nicht übergeben, daher wird ein Fehler ausgegeben
}
# Ein Parameter übergeben
new.function(6)

Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:

[1] 36
[1] 6
Fehler in print(b): Fehlende Parameter "b", keine Standardwerte
Aufrufe: new.function -> print
Ausführung stoppen