Eine schnelle Möglichkeit, Zeilen- und Spaltenwiederholungen Durchzuführen

Ein schneller Weg, um Zeilen- und Spaltenwiederholungen durchzuführen: Heute habe ich an einem Simulationsprogramm gearbeitet, bei dem ich eine Matrix erstellen muss, indem ich den Vektor n-mal wiederhole (sowohl nach Zeilen als auch nach Spalten).
Selbst wenn die Aufgabe extrem einfach ist und nur eine Zeile benötigt (10 Sekunden), muss ich darüber nachdenken, ob das Argument in rep jedes Mal oder jedes Mal ist und ob das Argument in der Matrix nrow oder ncol ist. Es hat mich von der ursprünglichen Aufgabe abgelenkt, an der ich arbeite.
Gerade habe ich eine Funktion rep.row und rep.col geschrieben, um das zu tun, was ich wirklich tun möchte. Das nächste Mal muss ich mir keine Gedanken darüber machen, wie ich mit dem Befehl matrix und rep einen Vektor wiederholen kann, um eine Matrix zu bilden!

[sourcecod]
rep.row<-function(x,n){
matrix(rep(x,each=n),nrow=n)
}
rep.col<-function(x,n){
matrix(rep(x,each=n), ncol=n, byrow=TRUE)
}
[/sourcecod]

x ist der zu wiederholende Vektor und n ist die Anzahl der Replikationen. Beispiel:

[sourcecod]
> rep.row(1:3,5)
[,1] [,2] [,3]
[1,]    1    2    3
[2,]    1    2    3
[3,]    1    2    3
[4,]    1    2    3
[5,]    1    2    3
> rep.col(1:3,5)
[,1] [,2] [,3] [,4] [,5]
[1,]    1    1    2    2    3
[2,]    1    1    2    3    3
[3,]    1    2    2    3    3
[/sourcecod]

TszKin Julian Chan

Leave a Reply