簡體   English   中英

R 創建列作為另一列的運行平均值

[英]R Create Column as Running Average of Another Column

我想在 R 中創建一個列,它只是另一列所有先前值的平均值。 例如:

D
    X
1   1
2   2
3   3
4   4
5   5
6   6
7   7
8   8
9   9
10 10

我希望 D$Y 是 D$X 的先驗平均值,即 D$Y 是 D$X 之前所有觀測值的平均值。 我知道如何使用遍歷每一行的 for 循環來做到這一點,但有沒有更有效的方式?

我有一個大數據集和硬件無法完成這項任務!

您可以像這樣生成向量的累積均值:

set.seed(123)
x<-sample(20)
x
## [1]  6 15  8 16 17  1 18 12  7 20 10  5 11  9 19 13 14  4  3  2
xmeans<-cumsum(x)/1:length(x)
xmeans
## [1]  6.000000 10.500000  9.666667 11.250000 12.400000 10.500000 11.571429
## [8] 11.625000 11.111111 12.000000 11.818182 11.250000 11.230769 11.071429
## [15] 11.600000 11.687500 11.823529 11.388889 10.947368 10.500000

所以D$Y<-cumsum(D$X)/1:nrow(D)應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM