小编Riy*_*iya的帖子

在数据帧的每一行上使用dplyr循环

我有一个数据框

df <- data.frame(var1=c(10,20,30,40,50), var2=c(rep(0.3,5)), BYGROUP_OBSNUM=c(0:4))

var1 var2 BYGROUP_OBSNUM
10   0.3          0
20   0.3          1
30   0.3          2
40   0.3          3
50   0.3          4
Run Code Online (Sandbox Code Playgroud)

我需要使用dplyr对每一行进行计算,因为我的实际数据帧确实很大,并且dplyr非常有效。

我想要的是:

var1    var2    BYGROUP_OBSNUM  VAR1_NEW
10       0.3       0              10
20       0.3       1              23
30       0.3       2              36.9
40       0.3       3              51.07
50       0.3       4              65.321
Run Code Online (Sandbox Code Playgroud)

如何实现的:

var1    var2    BYGROUP_OBSNUM  VAR1_NEW    
10       0.3         0           10
20       0.3         1           20+10*0.3
30       0.3         2           30+20*0.3+10*0.3^2
40       0.3         3           40+30*0.3+20*0.3^2+10*0.3^3
50       0.3         4           50+40*0.3+30*0.3^2+20*0.3^3+10*0.3^4
Run Code Online (Sandbox Code Playgroud)

因此,对于每一行,公式为:

 var1[i]+lag(var1,1)*var2^1+lag(var1,2)*var2^2 +.... 
Run Code Online (Sandbox Code Playgroud)

直到lag(var1)到达BYGROUP_OBSNUM为0的行

到目前为止,我取得了以下成就: …

loops r dataframe dplyr

6
推荐指数
1
解决办法
1345
查看次数

标签 统计

dataframe ×1

dplyr ×1

loops ×1

r ×1