Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R将列创建为另一列的运行平均值_R_Performance - Fatal编程技术网

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]

我想在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
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