2016-05-26 2 views
2

Ich suche nach einer Möglichkeit, eine Reihe von Matrizen zu generieren, bei denen alle Spaltensummen einem bestimmten Wert entsprechen. Ich dachte, ich könnte Zufallsmatrizen generieren und überprüfen, ob colSums = Wert benötigt, aber das scheint nicht zu funktionieren. Wie generieren wir zufällige Matrizen in R mit positiven und negativen Werten?Wie generieren Sie eine zufällige Matrix in R mit einem konstanten colSum-Wert?

+0

für die zweite Frage, können Sie nach '' runif' suchen, zB versuchen 'runif (your_desired_number, -1, 1)' –

+0

Bitte geben Sie ein Beispiel für eine solche Matrix: Ihre Frage ist zu breit wie sie ist . –

+0

@ priya12 Hallo, wenn die Antwort auf die Frage Ihr Problem löst, können Sie auf "akzeptieren" klicken, damit andere davon profitieren können? Vielen Dank – agenis

Antwort

2

Sie können so tun. Dies ist eine Funktion, die eine Matrix mit Zufallszahlen aus einer Normalverteilung erstellt. Dann zentriert es alle Spalten auf 0 und summiert die gewünschte Zahl.

RandomMatrixColsum = function(mycolsum=1, dim=c(10, 10), ...){ 
    m <- matrix(rnorm(prod(dim), ...), ncol=dim[2]) 
    ms <- scale(m, center=T, scale=F) + mycolsum/dim[1] 
    return(ms) 
} 
RandomMatrixColsum(8) 

Wenn Sie sicherstellen möchten, sowohl positive als auch negative Werte in Ihrer Matrix haben, können Sie die Standardabweichung der rnorm erhöhen, indem ein Argument sd=... zum Funktionsaufruf hinzufügen, oder auch die sd Kraft zu sein gleich dem Mittelwert.

Verwandte Themen