Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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_Function_Loops - Fatal编程技术网

R-滚动平衡函数

R-滚动平衡函数,r,function,loops,R,Function,Loops,求求你,你能帮我完成这个挑战吗?我有一个数据框,列有DATE、C、PAYMENT和TRX\u AMNT。我想创建一个函数(在本例中为2-1),根据旁边的注释创建列滚动 谢谢您的帮助。已解决。;)(tx,用于提示cumsum) 库(data.table) DAT1使用累计金额(付款)-累计金额(TRX\U AMNT),可选择ave,plyr,dplyr,数据。表格。如果你环顾四周,会有数百万个这样的问题。Tx,我更接近于解决它,但它不仅仅是运行总数。它被周期打断了。(请举例说明。) DATE

求求你,你能帮我完成这个挑战吗?我有一个数据框,列有DATE、C、PAYMENT和TRX\u AMNT。我想创建一个函数(在本例中为2-1),根据旁边的注释创建列滚动

谢谢您的帮助。

已解决。;)(tx,用于提示cumsum)

库(data.table)

DAT1使用累计金额(付款)-累计金额(TRX\U AMNT)
,可选择
ave
plyr
dplyr
数据。表格
。如果你环顾四周,会有数百万个这样的问题。Tx,我更接近于解决它,但它不仅仅是运行总数。它被周期打断了。(请举例说明。)
DATE        C   PAYMENT TRX_AMNT    ROLLING     (note)
01/01/2014  1   30      2           28          first row in cycle (PAYMENT - TRX_AMNT)
01/01/2014  1           15          13          previous ROLLING-TRX_AMNT+PAYMENT
01/01/2014  1           17          -4          previous ROLLING-TRX_AMNT+PAYMENT
02/01/2014  1   10      2           4           previous ROLLING-TRX_AMNT+PAYMENT
02/01/2014  1           20          -16         previous ROLLING-TRX_AMNT+PAYMENT
03/01/2014  1   15      5           -6          previous ROLLING-TRX_AMNT+PAYMENT
04/01/2014  1   50      30          14          previous ROLLING-TRX_AMNT+PAYMENT
05/01/2014  2   15      10          5           first row in cycle (PAYMENT - TRX_AMNT)
05/01/2014  2           2           3           previous ROLLING-TRX_AMNT+PAYMENT
library(data.table)
dat1<-read.table(text="
id,          x,          date
1,          5,          2012-06-05 12:01
1,          10,         2012-06-05 12:02
1,          45,         2012-06-05 12:03
2,          5,          2012-06-05 12:01
2,          3,          2012-06-05 12:03
2,          2,          2012-06-05 12:05
3,          5,          2012-06-05 12:03
3,          5,          2012-06-05 12:04
3,          8,          2012-06-05 12:05
1,          5,          2012-06-08 13:01
1,          9,          2012-06-08 13:02
1,          3,          2012-06-08 13:03
2,          0,          2012-06-08 13:15
2,          1,          2012-06-08 13:18
2,          8,          2012-06-08 13:20
2,          4,          2012-06-08 13:21
3,          6,          2012-06-08 13:15
3,          2,          2012-06-08 13:16
3,          7,          2012-06-08 13:17
3,          2,          2012-06-08 13:18
",sep=",",header=TRUE,stringsAsFactors=FALSE)
dat1

dat1$date<-as.Date(dat1$date,format="%Y-%m-%d %H:%M")
dat1

dat2<-dat1[order(dat1[,1],dat1[,3]),]
dat2

dat2$acc1<-ave(dat2$x,FUN=cumsum)

dat2$acc2<-ave(dat2$x,list(dat2$id),FUN=cumsum)

dat2$acc3<-ave(dat2$x,list(dat2$id,dat2$date),FUN=cumsum)

dat2