37

Rで3Dマトリックスを設定しようとしています。これは簡単だと思います。ただし、これまでのところ解決策は見つかりませんでした。365x6x4 のマトリックスを作成したいとしましょう。また、マトリックス内の 1 つのエントリを変更する方法も重要です。値 204 を要素 [304,5,2] に割り当てたいとしましょう。あなたの答えに感謝します!

ありがとう!最高、F

4

3 に答える 3

46

これを試して:

ar <- array(someData, c(365, 6, 4));  
ar[304,5,2] <- 204;

どこにいるのsomeDataだろう

someData <- rep(0, 365*6*4);  

またはさらに良いかもしれません

someData <- rep(NaN, 365*6*4);  
于 2012-06-09T12:56:04.347 に答える
17

行列は、配列の特別な 2 次元のケースです。( のヘルプから引用?matrix)。

だから、あなたが必要ですarray

x <- array(rep(1, 365*5*4), dim=c(365, 5, 4))
str(x)
num [1:365, 1:5, 1:4] 1 1 1 1 1 1 1 1 1 1 ...

特定の値を設定します。

x[305, 5, 2] <- 204

1 つのスライスを印刷します。

x[305, , ]
     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    1    1    1    1
[3,]    1    1    1    1
[4,]    1    1    1    1
[5,]    1  204    1    1
于 2012-06-09T12:55:42.523 に答える
6

この簡単な例を試してみてください (何が起こっているのかが明確になるように例をかなり小さくしました - あなたの正確な質問のためにそれを微調整する方法を以下に説明します!)...

m = array(1:60, dim=c(3,4,5))

m[2,1,5]
[1] 50

m[2,1,5] = -50

m[2,1,5]
[1] -50

m3D配列全体を見るために入力してください:)

あなたの例では、初期配列を次のように設定しますm = array(NA, dim=c(365,6,4))(これにより、最初にNAが入力されます-それを入力するデータがありますか?)そして、割り当てはm[304,5,2] = 204もちろんです:)

于 2012-06-09T12:54:53.417 に答える