replicate()-Funktion in R

Manav Narula 25 Februar 2021
replicate()-Funktion in R

Die Funktion replicate() kann zur Erstellung von Simulationen verwendet werden, da sie einen Ausdruck eine bestimmte Anzahl von Malen wiederholen kann. Wir können auch den Typ des Endergebnisses als Array oder Liste mit dem Parameter simplify steuern.

Ein einfaches Beispiel für die Funktion replicate() ist unten dargestellt:

replicate(5,1)
[1] 1 1 1 1 1

Wie Sie im obigen Beispiel sehen können, ist 1 der Ausdruck, der 5 Mal wiederholt wird. Beachten Sie, dass das Endergebnis hier ein Array ist. Wenn wir den Parameter simplify zur Funktion hinzufügen (der standardmäßig True ist) und ihn auf False setzen, erhalten wir eine Liste statt eines Arrays. Ein Beispiel:

typeof(replicate(5,1,simplify = FALSE))
[1] "list"

Wir können replicate() auch für komplexere Simulationen verwenden, z. B. zum Erstellen eines 2-D-Arrays. Der folgende Codeschnipsel zeigt, wie wir das machen.

replicate(5, seq(1,10,1))
      [,1] [,2] [,3] [,4] [,5]
 [1,]    1    1    1    1    1
 [2,]    2    2    2    2    2
 [3,]    3    3    3    3    3
 [4,]    4    4    4    4    4
 [5,]    5    5    5    5    5
 [6,]    6    6    6    6    6
 [7,]    7    7    7    7    7
 [8,]    8    8    8    8    8
 [9,]    9    9    9    9    9
[10,]   10   10   10   10   10

In diesem Beispiel verwenden wir die Funktion seq(), um eine einfache Sequenz zu erstellen. Sie erzeugt eine Sequenz von 1 bis 10 mit einer Schrittweite von 1. replicate() wiederholt die Sequenz 5 Mal, um ein 2-D-Array zu erzeugen.

Wir können auch die for()-Schleife für eine solche Situation verwenden. Ein Beispiel:

n <- numeric(5)
arr2d <- replicate(5, {
   for(i in 1:5){n[i] <- print(i)};n} )
print(arr2d)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    1    1    1    1
[2,]    2    2    2    2    2
[3,]    3    3    3    3    3
[4,]    4    4    4    4    4
[5,]    5    5    5    5    5

Beachten Sie, dass wir einen numerischen Vektor als zusätzliche Anweisung außerhalb der geschweiften Klammer verwenden müssen; andernfalls erhält die Funktion replicate() den Wert NULL, da der Wert als Müll entsorgt wird und nicht gespeichert wird, da wir die for()-Schleife verwenden.

arr2d <- replicate(5, {
   for(i in 1:5){print(i)}} )
print(arr2d)

Ausgabe:

[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

[[4]]
NULL

[[5]]
NULL
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Verwandter Artikel - R Function