1

私は非常に単純なことに苦労しています。行列のサブセットの平均を見つけようとしています。たとえば、行列の各行の最後の 196 要素の平均を見つけたいと思います。

私のコードは次のようになります。

for (i in 1:length(ratios))  
{  
    mean(ratios[length(ratios[,1])-196:length(ratios[,1]),i])  
} 

どんな助けでも大歓迎です!

4

2 に答える 2

2

これはより直接的なアプローチです

>rowMeans(tail(ratios, 196))

tail(ratios, 196)の各行の最後の 196 要素を返し、各行の平均を計算しますratiosrowMeans

あなたの例では、列の平均の代わりに列の平均を取っているので、試してみてください:

>colMeans(tail(ratios,10))

これが例です

> ratios <- iris[, sapply(iris, is.numeric)]
> Means <- numeric(ncol(ratios))

> for (i in 1:length(ratios))
  {
    Means[i] <- (mean(ratios[(length(ratios[,1])-10):length(ratios[,1]),i]))
 }

> COLMeans <- colMeans(tail(ratios,10))

> Means  ## Using `for` loop
[1] 6.490909 3.036364 5.336364 2.163636

> COLMeans # using `tail` and `colMeans`
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
        6.45         3.03         5.33         2.17 
于 2013-10-08T08:29:45.723 に答える
0

私は実際にそれを解決しました。何らかの理由で、次のように比率行列の行部分を括弧で囲む必要があります。

for (i in 1:length(ratios)){  
  mean(ratios[(length(ratios[,1])-196):length(ratios[,1]),i])  
}

これが同様の問題を抱えている人に役立つことを願っています

于 2013-10-08T08:07:08.457 に答える