如何递归计算R中随时间变化的平均值
考虑以下数据集如何递归计算R中随时间变化的平均值,r,recursion,time,average,mean,R,Recursion,Time,Average,Mean,考虑以下数据集 period<-c(1,2,3,4,5) x<-c(3,6,7,4,6) cumulative_average<-c((3)/1,(3+6)/2,(3+6+7)/3,(3+6+7+4)/4,(3+6+7+4+6)/5) df_test<-data.frame(value,cum_average) df_test period value cum_average 1 3 3 2 6
period<-c(1,2,3,4,5)
x<-c(3,6,7,4,6)
cumulative_average<-c((3)/1,(3+6)/2,(3+6+7)/3,(3+6+7+4)/4,(3+6+7+4+6)/5)
df_test<-data.frame(value,cum_average)
df_test
period value cum_average
1 3 3
2 6 4.5
3 7 5.3
4 4 5.0
5 6 5.2
period也许你在找这个。您可以首先计算@tmfmnk中提到的累积和,然后除以跟踪观察次数的行数(如果需要平均值)。下面是使用dplyr的代码:
library(dplyr)
#Code
newdf <- df_test %>% mutate(AvgTime=cumsum(x)/row_number())
如果只需要累计总和:
#Code2
newdf <- df_test %>% mutate(CumTime=cumsum(x))
或仅基本R
:
#Base R
df_test$Cumsum <- cumsum(df_test$x)
也许你在找这个。您可以首先计算@tmfmnk中提到的累积和,然后除以跟踪观察次数的行数(如果需要平均值)。下面是使用dplyr的代码:
library(dplyr)
#Code
newdf <- df_test %>% mutate(AvgTime=cumsum(x)/row_number())
如果只需要累计总和:
#Code2
newdf <- df_test %>% mutate(CumTime=cumsum(x))
或仅基本R
:
#Base R
df_test$Cumsum <- cumsum(df_test$x)
使用标准R:
period<-c(1,2,3,4,5)
value<-c(3,6,7,4,6)
recursive_average<-cumsum(value) / (1:length(value))
df_test<-data.frame(value, recursive_average)
df_test
value recursive_average
1 3 3.000000
2 6 4.500000
3 7 5.333333
4 4 5.000000
5 6 5.200000
period使用标准R:
period<-c(1,2,3,4,5)
value<-c(3,6,7,4,6)
recursive_average<-cumsum(value) / (1:length(value))
df_test<-data.frame(value, recursive_average)
df_test
value recursive_average
1 3 3.000000
2 6 4.500000
3 7 5.333333
4 4 5.000000
5 6 5.200000
period我们可以使用cummean
library(dplyr)
df_test %>%
mutate(AvgTime=cummean(value))
-输出
# period value AvgTime
#1 1 3 3.000000
#2 2 6 4.500000
#3 3 7 5.333333
#4 4 4 5.000000
#5 5 6 5.200000
数据
df_检验我们可以使用cummean
library(dplyr)
df_test %>%
mutate(AvgTime=cummean(value))
-输出
# period value AvgTime
#1 1 3 3.000000
#2 2 6 4.500000
#3 3 7 5.333333
#4 4 4 5.000000
#5 5 6 5.200000
数据
df\u测试查看cumsum()
函数。相关:查看cumsum()
函数。相关:我建议将名称recursive\u average
更改为cumulative\u average
我建议将名称recursive\u average
更改为cumulative\u average