2016-07-30 6 views
0

私は18個のlong long座標のリストを含むsectorCoorという行列を持っています。これらの18の座標は、最小値6から最大値36までの行列のサイズを変更する可能性のある別の変数に依存します。行列は常に6の倍数になります。したがって、セクタのサイズに依存します。既存の行列をサイズ6の要素に分割し、そこから変数sectorCoorをsectorCoor行列の先頭に追加したいと思います。最初の6要素の後にsiteCoorを追加して次の6をとるなど6の倍数がすべて完了しました。R Studioの特定の場所にある可変サイズの行列に要素を挿入します。

大変ありがとうございます。

siteCoor, 
first 6 lon lat coordinates 
siteCoor 
siteCoor 
Next 6 lon lat coordinates 
siteCoor 
siteCoor 
Next 6 lon lat coordinates 
siteCoor 

> siteCoor 
     [,1]  [,2] 
[1,] 152.7075 -27.7027 

> sectorCoor 
      lon  lat 
[1,] 152.7075 -27.70270 
[2,] 152.6983 -27.68203 
[3,] 152.7028 -27.68085 
[4,] 152.7075 -27.68046 
[5,] 152.7122 -27.68085 
[6,] 152.7167 -27.68203 
[7,] 152.7209 -27.68394 
[8,] 152.7322 -27.70592 
[9,] 152.7311 -27.71000 
[10,] 152.7291 -27.71382 
[11,] 152.7264 -27.71724 
[12,] 152.7230 -27.72015 
[13,] 152.7190 -27.72243 
[14,] 152.6920 -27.72015 
[15,] 152.6886 -27.71724 
[16,] 152.6858 -27.71382 
[17,] 152.6839 -27.71000 
[18,] 152.6828 -27.70592 
[19,] 152.6825 -27.70173 
+0

なぜあなたはそれが18を持っていなければならないと主張するが'sectorCoor'が19行を持っていますか?期待される出力の例を挙げてください。私はあなたの要求を理解したかどうか分からない。ありがとうございました。 – Uwe

+0

「_add_」という用語を使用するときに数値を加算する演算を意味するわけではありませんか?あなたはおそらく_insert_人ですか? – Uwe

+0

こんにちはUweブロック、私はsiteCoor 'セクターコアー TheGoat

答えて

1

私は、正しいサイズの行列を事前に割り当て、別途siteCoorsectorCoor行を移入します。 matrix()に渡された初期データベクトルを使用してsiteCoor行にデータを格納し、次にインデックス割り当てを使用してsectorCoor行にデータを格納できます。 Iは、ressectorCoor行の添字する短い論理ベクトルを使用し、上記で

res <- matrix(siteCoor,nrow(sectorCoor)+nrow(sectorCoor)%/%6L*2L,2L,byrow=T); 
res[c(F,rep(T,6L),F),] <- sectorCoor; 
res; 
##  [,1] [,2] 
## [1,] -1 -2 
## [2,] 1 19 
## [3,] 2 20 
## [4,] 3 21 
## [5,] 4 22 
## [6,] 5 23 
## [7,] 6 24 
## [8,] -1 -2 
## [9,] -1 -2 
## [10,] 7 25 
## [11,] 8 26 
## [12,] 9 27 
## [13,] 10 28 
## [14,] 11 29 
## [15,] 12 30 
## [16,] -1 -2 
## [17,] -1 -2 
## [18,] 13 31 
## [19,] 14 32 
## [20,] 15 33 
## [21,] 16 34 
## [22,] 17 35 
## [23,] 18 36 
## [24,] -1 -2 

。 Rは、行全体のサイズがresになるようにベクトルをリサイクルし、記憶パターンに必要な周期性を実現します。

データ

N <- 3L; 
sectorCoor <- matrix(seq_len(N*6L*2L),ncol=2L); 
siteCoor <- matrix(c(-1,-2),ncol=2L); 
+1

おかげさまで、大変助かりました。ありがとうございました。 – TheGoat

関連する問題