2016-09-22 5 views
0

私は2列の行列を持っており、それを指定された次元の行列に変換したいと思います。私はモジュロで物事を実行しようとしましたが、私の頭は私が一つでも多くの分をしようとするためにあまりにも多くを傷つける指定された次元を持つ別の行列への行列

> tt <- matrix(t, ncol=4, nrow=5) 
     [,1]  [,2]  [3,]  [4,] 
[1,] 1.4938530 1.2493088 -0.8079445 1.8715868 
[2,] 0.5775695 -0.9277420 0.4415969 2.6357908 
[3,] etc. 

:私がやりたいのは何

> t <- matrix(rnorm(20), ncol=2, nrow=10) 
     [,1]  [,2] 
[1,] 1.4938530 1.2493088 
[2,] -0.8079445 1.8715868 
[3,] 0.5775695 -0.9277420 
[4,] 0.4415969 2.6357908 
[5,] 0.3209226 -1.1306049 
[6,] 0.5109251 -0.8661100 
[7,] 1.9495571 0.2092941 
[8,] 0.7816373 1.1517466 
[9,] 0.0300595 -0.1351532 
[10,] 0.7550894 0.7778869 

のようなものです。

答えて

3

あなたは、データが必要に順に格納されるように、あなたの最初の行列を転置して、行ごとに第2の行列を埋めることができます。

tt <- matrix(t(t), ncol=4, nrow=5, byrow = T) 

t 
#    [,1]  [,2] 
# [1,] -1.4162465950 0.01532476 
# [2,] -0.2366332875 -0.04024386 
# [3,] 0.5146631983 -0.34720239 
# [4,] 1.9243922633 -0.24016160 
# [5,] 1.6161165230 0.63187438 
# [6,] -0.3558181508 -0.73199138 
# [7,] 0.7459405376 0.01934826 
# [8,] -1.0428581093 -2.04422042 
# [9,] 0.0003166344 0.98973993 
#[10,] 0.6390745275 -0.65584930 

tt 
#    [,1]  [,2]  [,3]  [,4] 
# [1,] -1.4162465950 0.01532476 -0.2366333 -0.04024386 
# [2,] 0.5146631983 -0.34720239 1.9243923 -0.24016160 
# [3,] 1.6161165230 0.63187438 -0.3558182 -0.73199138 
# [4,] 0.7459405376 0.01934826 -1.0428581 -2.04422042 
# [5,] 0.0003166344 0.98973993 0.6390745 -0.65584930 

あなたがRでの行列で作業、あなたが考えることができます列ごとにデータが格納されたベクトルとして表示されます。したがって、行列から行ごとにデータを抽出することは、基本的にデータがどのように格納されているかによって列を抽出するのと同じくらい単純ではありません。最初の行列を転置した後、データは抽出したい順番で格納され、次に2番目の行列を行単位で入力すると直進します。

関連する問題