我正在使用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
我需要通過計算B列和C列的平均值爲儘可能多的行作爲在列A的值以減少的數據的大小保持連續相同的,最多3個行。如果值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