プログラミングには全く新しい - 私は次元821の配列を持ち、3つの値の平均を取ってみたい。各行は毎月のデータを表し、私は四半期ごとの平均(3ヶ月毎)が必要です。私は練習用のforループを使ってやりたいのですが、私はそれを理解できません。R - forループを使用して配列内の3つの値の平均を計算する
-2
A
答えて
2
コメントの説明。
# Create some dummy data. I created one with 822 values instead of 821 because 821 is not divisible without remainder by 3.
vec.dummy <- sample(1:100, 822, replace = TRUE)
# Use the values and create a matrix with 3 columns.
mat.dummy <- matrix(vec.dummy, ncol = 3, byrow = TRUE)
# Take the row means of each row.
rowMeans(mat.dummy)
0
問題がない場合は、Rのforループを使用しないでください。ちょっと離れて、あなたは最終的にそれを必要とする問題に遭遇します。これはしません。
はここplyrを使用して別のアプローチです:
library(plyr)
array <- rnorm(821) #The array you want to average
div <- 822/3 #Need an integer number of dividers
position <- rep(1:div, each=3)
data <- data.frame(
"array"=array,
"position"=position[1:(length(position)-1)]
)
head(data)
array position
1 -0.005807528 1
2 0.997539073 1
3 1.172736615 1
4 0.371252122 2
5 1.291737080 2
6 0.796526756 2
#use plyr to average "array" by common values in other column of DF
data <- ddply(data, c("array"), numcolwise(mean))
head(data)
array position
1 -3.269147 258
2 -3.076415 158
3 -2.962204 242
4 -2.679143 19
5 -2.306075 231
6 -2.283344 223
2番目の列を持つあなたは、ベクター内のユニークな値を追跡することができます。それはあなたのデータの四分の一かもしれません。ここでは、@ Cam23によって要求されたよう
0
は、私はお勧めしませんループ形でソリューションです:
array <- rnorm(821)
div <- 822/3
threes <- c(0, 3*(1:(div-1)))
finalArray <- numeric()
for(i in 1:length(threes)){
calculation <- mean(array[threes[i]+1:3])
finalArray <- c(finalArray, calculation)
}
finalArray[274] <- mean(array[820:821])
最後の行が原因821が3によってきれいに割り切れないという事実にjanky修正です
関連する問題
- 1. forループを使用してリスト内の数値の平均を計算する
- 2. C#でforループを使用して10個の数値の配列の平均を計算する
- 3. Rプログラミングを使用してデータフレームの平均を計算する
- 4. whileループを使用してPythonの平均を計算する
- 5. 配列の平均を計算する
- 6. 配列の平均を計算する
- 7. パンダ:forループで列の特定の値で平均を計算する
- 8. 3つのグループ化された列でRを使用して平均を計算する
- 9. データフレーム内の2つの列の平均を計算する
- 10. R以外の数値を持つ列の平均を計算する
- 11. cvMatの平均値を計算して使用する方法
- 12. 関数内の列の平均値を計算する方法
- 13. 欠損値を持つRの加重平均計算
- 14. Mapreduce-java:配列リストの計算平均
- 15. R forループ計算用分散値
- 16. 辞書内の複数配列の配列平均を計算する
- 17. ROCRとpROC(R)を使用した平均AUC計算の差
- 18. ループの結果の平均値を計算します。
- 19. rリストの値の平均を計算する関数
- 20. Rの不平衡パネルデータの年平均値の計算方法?
- 21. クラスメソッドを使用して配列のすべての値の平均を計算する方法
- 22. Collectors.averagingDoubleで二重配列の平均を計算するには?
- 23. 列番号を使用して列内の数値の平均を計算する
- 24. 各列の平均を計算します。R
- 25. VBAの平均値を計算する
- 26. Javaボウリングスコアの3つの平均を計算する方法
- 27. データフレーム内の配列列のインデックスで平均を計算する方法
- 28. 行列のいくつかのエントリの平均を計算するR
- 29. rの数値の平日の平均を計算する方法
- 30. ピボットテーブルの名前を使用して平均を計算する
サイズ821の配列は1列、821行を意味しますか?平均値(1位、2位、3位)、平均値(2位、3位、4位)などが必要ですか? – JackeJR
確かに、1列に821行分の月次データがあります。しかし、平均(1位、2位、3位)、平均(4位、5位、6位)などが必要です。したがって、最初の計算は1年目の平均であり、2回目の計算は2年目のようになります。 – Cam23