2017-10-21 6 views
0

a<-c(1,2,3,4,5,6)ベクトルを行列のramdom位置に配置するにはどうすればよいですか??行列内にベクトルをランダムに配置するR

ベクトルは一緒にすることがあります。

 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] 0 0 0 0 0 0 0 0 0  0 
[2,] 1 0 0 0 0 0 0 0 0  0 
[3,] 2 0 0 0 0 0 0 0 0  0 
[4,] 3 0 0 0 0 0 0 0 0  0 
[5,] 4 0 0 0 0 0 0 0 0  0 
[6,] 5 0 0 0 0 0 0 0 0  0 
[7,] 6 0 0 0 0 0 0 0 0  0 
[8,] 0 0 0 0 0 0 0 0 0  0 
[9,] 0 0 0 0 0 0 0 0 0  0 
[10,] 0 0 0 0 0 0 0 0 0  0 

そしてそれは、水平、垂直または斜め 私が試してみましたする必要があります。

start = sample.int(length(m), 1) 
m[start:(start+length(a)-1)] = a 

しかし、それは、次の場所を取ることはできません。

 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] 0 0 0 0 0 0 5 0 0  0 
[2,] 0 0 0 0 0 0 6 0 0  0 
[3,] 0 0 0 0 0 0 0 0 0  0 
[4,] 0 0 0 0 0 0 0 0 0  0 
[5,] 0 0 0 0 0 0 0 0 0  0 
[6,] 0 0 0 0 0 0 0 0 0  0 
[7,] 0 0 0 0 0 1 0 0 0  0 
[8,] 0 0 0 0 0 2 0 0 0  0 
[9,] 0 0 0 0 0 3 0 0 0  0 
[10,] 0 0 0 0 0 4 0 0 0  0 

ありがとうございました

答えて

1

サンプルその後、1D aと同じ大きさの指標とは、それらの指標でmへのベクトルを割り当てる:

m[sample.int(length(m), length(a))] <- a 
m 
#  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
# [1,] 0 6 0 0 0 0 0 0 0  0 
# [2,] 0 0 0 0 0 4 0 0 0  0 
# [3,] 0 3 0 1 0 0 0 0 5  0 
# [4,] 0 0 0 0 0 0 0 0 0  0 
# [5,] 0 0 0 0 0 0 0 0 0  0 
# [6,] 0 0 0 0 0 0 0 0 0  0 
# [7,] 0 0 0 0 0 0 0 0 0  0 
# [8,] 0 0 0 0 0 0 0 0 2  0 
# [9,] 0 0 0 0 0 0 0 0 0  0 
#[10,] 0 0 0 0 0 0 0 0 0  0 

ベクトルが連続する必要がある場合は、開始インデックスをサンプリングすることができ、かつ次に、範囲インデックスに割り当てる:

start = sample.int(length(m), 1) 
m[start:(start+length(a)-1)] = a 

m 
#  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
# [1,] 0 0 0 0 0 0 0 0 0  0 
# [2,] 0 0 0 0 0 0 0 0 0  0 
# [3,] 0 0 0 0 0 0 0 0 0  0 
# [4,] 0 0 0 0 0 0 0 0 0  0 
# [5,] 1 0 0 0 0 0 0 0 0  0 
# [6,] 2 0 0 0 0 0 0 0 0  0 
# [7,] 3 0 0 0 0 0 0 0 0  0 
# [8,] 4 0 0 0 0 0 0 0 0  0 
# [9,] 5 0 0 0 0 0 0 0 0  0 
#[10,] 6 0 0 0 0 0 0 0 0  0 
+0

Thaks、私は、ベクターは、私は – Picachu

+0

おかげで再び追加編集のように一緒にあることを意味し、それが起こる以外にそのコードを、私は、水平方向ベクトルを得ます以下: – Picachu

関連する問題