2017-03-21 21 views
0
matrix: 
     [,1] [,2] [,3] 
[1,] 1 5 9 
[2,] 2 6 10 
[3,] 3 7 11 
[4,] 4 8 12 

vector = c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l") 

値Iは、一般的なベクトルを使用しているが、私は、データがそう設定しますはるかに大きな多様でこれをやってます私のようなものの後にないです:あなたは、マトリックスの元の値のいずれかを節約していないのでは、私は私が得るような値を置き換えることができますどのよう

matrix(letters[1:12],4,3) 
+2

'行列[] <行うことができます - vector'を? – cdeterman

答えて

1

あなたはmatrixだけそのような整数を含まない場合は、次の

mat <- matrix(sample(seq(12), 12), nrow = 4) 
vec <- letters[1:12] 

mat[] <- vec[mat[]] 
+0

返信をありがとう、残念ながら私の例よりも複雑ですが、それは私のせいです。私は自分の質問の修正版を再投稿するつもりです。 – Aesler

+1

@Aeslerはあなたの2番目の投稿から行っていますが、上記の解決策を提供した例はまだ機能しています。 – cdeterman

0

、以下が

を働くだろう3210
> matrix_name <- matrix(data = your_vector, 
         nrow = 4, 
         ncol = 3, 
         byrow = FALSE) 
+0

私は私の例ではっきりしていたはずです。行列は非連続数である可能性があります。例えば、ベクトルは[3,3]エントリとして "1"を持つことができます。ここでも "1"をベクトルの最初の値に置き換える必要があります。 a "。 "2"の値が重複し、出力マトリックスに複数の "b"値が重複する可能性があります。 – Aesler

+0

効果的に "replace all"コマンドを使用したい – Aesler

+1

'' 'matrix_name < - replace(matrix_name、matrix_name == value_to_replace、replaced_value)' 'これはあなたが探しているものですか? – Crt

関連する問題