私はRを使用しており、列Aの値に基づいて別のデータフレームから平均化された結果の新しいデータフレームを作成しようとしています。データ:他の列の値と行の数に基づく平均列R
set.seed(1981)
df <- data.frame(A = sample(c(0,1), replace=TRUE, size=100),
B=round(runif(100), digits=4),
C=sample(1:1000, 100, replace=TRUE))
head(df, 30)
A B C
0 0.6739 459
1 0.5466 178
0 0.154 193
0 0.41 206
1 0.7526 791
1 0.3104 679
1 0.739 434
1 0.421 171
0 0.3653 577
1 0.4035 739
0 0.8796 147
0 0.9138 37
0 0.7257 350
1 0.2125 779
0 0.1502 495
1 0.2972 504
0 0.2406 245
1 0.0325 613
0 0.8642 539
1 0.1096 630
1 0.2113 363
1 0.277 974
0 0.0485 755
1 0.0553 412
0 0.509 24
0 0.2934 795
0 0.0725 413
0 0.8723 606
0 0.3192 591
1 0.5557 177
Iは、列Aの値が3の最大値まで、連続的に同じままでできるだけ多くの行の列Bおよび列Cの平均値を算出することによりデータのサイズを小さくする必要があります行。値Aが1のままの場合、または3行以上の場合は0のままにしておくと、次のように新しいデータフレームの次の行にロールオーバーします。
新しいデータフレームには、次の列が必要です。
Value of A B.Av C.Av No. of rows used
0 0.6739 459 1
1 0.5466 178 1
0 0.282 199.5 2
1 0.600666667 634.6666667 3
1 0.421 171 1
0 0.3653 577 1
1 0.4035 739 1
0 0.8397 178 3
1 0.2125 779 1
0 0.1502 495 1
1 0.2972 504 1
0 0.2406 245 1
1 0.0325 613 1
0 0.8642 539 1
1 0.1993 655.6666667 3
0 0.0485 755 1
1 0.0553 412 1
0 0.291633333 410.6666667 3
0 0.59575 598.5 2
1 0.5557 177 1
私は、任意のヘルプは本当にいただければ幸いですので、スタックオーバーフローを探しながら、鉱山への別の同様のシナリオを見つけることができませんでした。ここで
ありがとうございました!私はこれを必要に応じて自分のデータに適用することができました。私は 'rle'機能を見たことがないので、それを私の注意を引くことに感謝します。これは私のために役立つでしょう。 – Noosentin