【发布时间】:2016-10-13 20:56:50
【问题描述】:
这就是我的 data.table 的样子。最后一列 New_Amount 是我想要的列。
StartingAmount<-10
library(data.table)
dt <- fread('
Level Interest New_Amount
0 .5 10
1 .5 15
0 .5 15
0 .3 15
1 .2 18
0 .4 18
1 .5 27
')
假设我从 10 美元开始。对于 Level = 1 的每一行,我想在加上利息后计算我的新金额。所以对于 Level = 1 的第二行,我的 New_Amount 是 10+(10*.5) =15。在 Level=1 的第 5 行,我的 New_Amount 为 15+(15*.2)=18。我将忽略 Level=0 的行,并将最后的观察结果向前推进。
这是我的尝试:
dt[, NewAmount:= ifelse(Level==1,StartingAmount+StartingAmount*Interest,0)]
dt[, NewAmount:= ifelse(Level==1, New_Amount + New_Amount*Interest , NA)]
【问题讨论】:
标签: r data.table dplyr zoo