R将列创建为另一列的运行平均值
我想在R中创建一个列,它只是另一列的所有先前值的平均值。例如:R将列创建为另一列的运行平均值,r,performance,R,Performance,我想在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]
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
set.seed(123)
x可以生成如下向量的累积平均值:
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
set.seed(123)
欢迎来到SO。要帮助制作一个可复制的示例,可以使用repearch()
。说明如下:-@RicardoSaporta:你的意思是dput
?@DavidRobinson不,我的意思是复制(.)
;)@里卡多萨波尔塔:那你就得做source(“https://github.com/rsaporta/pubR/blob/gitbranch/reproduce.R”
首先(应该向OP:-)我确实说过“说明在这里”,指向源代码的链接就在这里。该函数对于bug reportsHello也非常有用,欢迎使用SO。要帮助制作一个可复制的示例,可以使用repearch()
。说明如下:-@RicardoSaporta:你的意思是dput
?@DavidRobinson不,我的意思是复制(.)
;)@里卡多萨波尔塔:那你就得做source(“https://github.com/rsaporta/pubR/blob/gitbranch/reproduce.R”
首先(应该向OP:-)我确实说过“说明在这里”,指向源代码的链接就在这里。该函数对于bug报告也非常有用。谢谢,它工作得非常好,当然可以消除每一行的循环:)丢失的数据呢?@Thomas Good question。我想不出一种方法可以在一行中完成,但是类似于naxThanks的东西非常好,它工作得非常好,当然可以消除每一行的循环:)丢失的数据呢?@thomasgood-question。我想不出一种方法可以在一行中完成,但类似于nax