0

データフレームに保存されている座標を次のように平均します。

sapply(coords[N:M,],mean) # mean of coordinates N to M

いくつかの座標セットの平均が必要なので、このループを作成しました。これにより、座標1-4、5-11、および20-30の平均が求められます。

N <- c(1, 5,20)
M <- c(4,11,30)
for ( i in 1:length(N) ) {
    sapply(coords[N(i):M(i),],mean)
}

そのループをベクトル化するにはどうすればよいですか?行列をcoords()に渡そうとしましたが、それではcoords[NM,]私が望むものが得られません。

4

1 に答える 1

2

単純さと効率のために、をsapply(x, mean)置き換えることができます。colMeans(x)

おそらく、ベクトルの考え方によって、可能で単純な場合は、いくつかの変数(NとM)を単一のベクトル(ここでは配列)に変換することを好みます。

N <- data.frame(from=c(1,5,20), to=c(4,11,30))
apply(N, 1, function(x) colMeans(coords[x[1]:x[2],]))
于 2012-11-22T03:48:47.077 に答える