これはおそらく簡単な質問です。しかし、私は本当に苦労していますので、大変助かりました。4d配列を3次元配列に変換する方法
私は3dデータに変換したい4dデータを持っています。データには次の属性があります。
lon <- 1:96
lat <- 1:73
lev <- 1:60
tme <- 1:12
data <- array(runif(96*73*60*12),
dim=c(96,73,60,12)) # fill with random test values
最初のいくつかのレベル(1:6など)の平均を計算します。新しいデータは次の形式になります。
new.data <- array(96*73*12), dim=c(96,73,12)) # again just test data
しかし、データの最初の5つのレベルの平均値が含まれます。現時点で私がそれを有効にする唯一の方法は、最初の5つのレベルのそれぞれを抽出し、それらの合計を5で割って平均を得る非効率なループを書くことです。
私が試してみました:素敵な私ALL垂直レベルの平均を与えるが、わずか数の平均値を取得するために第3次元をサブセットする方法を理解することはできません
new.data <- apply(data, c(1,2,4), mean)
!例えば
new.data <- apply(data, c(1,2,3[1:5],4), mean) # which returns
Error in ds[-MARGIN] : only 0's may be mixed with negative subscripts
私はいくつかの助けに絶望的です!私はあなたの用語を理解していればインデキシング(「[」の適切な使用)と
答えてくれてありがとう!私はそれは簡単だろうが、私は少し混乱していると思う! –
これが実際に質問に答えた場合は、チェックマークを打つことによって他の読者に好意的にやってもらうことになります。 (私は現時点では余分なポイントが本当に必要なわけではありませんが、小切手を使用するまでは未回答の質問として表示され続けます)。 –