2016-05-26 11 views
2

私はすべての列の合計が特定の値に等しい一連の行列を生成する方法を探しています。 私はランダムな行列を生成し、それぞれをチェックしてcolSums = valueが必要な場所を調べることができると考えましたが、うまくいかないようです。 また、正の値と負の値の両方でRでランダム行列を生成するにはどうすればよいですか?定数colSumの値でRでランダム行列を生成するにはどうすればよいですか?

+0

2番目の質問では、 '?runif'を見ることができます。たとえば、' runif(your_desired_number、-1、1) 'を試してください。 –

+0

そのような行列の例を挙げてください。 。 –

+0

@ priya12こんにちは質問の答えがあなたの問題を解決するなら、あなたはそれを他の人が恩恵を受けることができるように「受け入れる」ことができますか?ありがとう – agenis

答えて

2

このようにすることができます。これは、正規分布からの乱数で満たされた行列を作成する関数です。次に、すべての列を0に合わせ、目的の数値を加算します。

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) 

あなたのマトリックスに正と負の両方の値を持っていることを確認したい場合は、関数呼び出しに引数sd=...を追加することにより、rnormの標準偏差を増やす、またはもするSDを強制することができます平均と等しい。

関連する問題